![]() 拡張可能な重複排除機構
专利摘要:
バックアップ記憶システムから冗長データを除去するための方法が提示される。一例では、この方法は、アプリケーション層データオブジェクトを受信することと、複数の重複排除ドメインからある重複排除ドメインを、前記重複排除ドメインに関連付けられたデータオブジェクト特性に少なくとも部分的に基づいて選択することと、前記アプリケーション層データオブジェクトが前記特性を有すると判断することと、前記重複排除ドメインに前記アプリケーション層データオブジェクトを誘導することとを含んでいてもよい。 公开号:JP2011510405A 申请号:JP2010543270 申请日:2009-01-16 公开日:2011-03-31 发明作者:サンドルフィ,ミクロス;ライター,ティミー・ジィ 申请人:セパトン,インコーポレイテッド; IPC主号:G06F12-00
专利说明:
[0001] 背景 1.発明の分野 この発明の局面はデータストレージに関し、より特定的には、拡張可能なデータ重複排除サービスを提供するための装置および方法に関する。] 背景技術 [0002] 2.関連技術の説明 多くのコンピュータシステムは、1つ以上のホストコンピュータと、ホストコンピュータが使用したデータを記憶する1つ以上のデータ記憶システムとを含む。これらのホストコンピュータおよび記憶システムは典型的には、ファイバチャネル(Fibre Channel)ネットワーク、イーサネット(登録商標)ネットワーク、または別のタイプの通信ネットワークといったネットワークを用いて、ともにネットワーク化される。ファイバチャネルは、チャネルベースの伝送方式の速度とネットワークベースの伝送方式の柔軟性とを組合せて、ネットワーク上で複数のイニシエータが複数のターゲットと通信することを可能にする規格であり、ここでイニシエータおよびターゲットは、ネットワークに結合されたどの装置であってもよい。ファイバチャネルは典型的には、光ファイバケーブルといった高速伝送媒体を用いて実現されるため、大量のデータが転送される記憶システムネットワークにとって一般的な選択肢である。] [0003] いくつかのホストコンピュータとバックアップ記憶システムとを含む典型的なネットワーク化コンピューティング環境の一例を、図1に示す。1つ以上のアプリケーションサーバ102が、ローカルエリアネットワーク(LAN)103を介して、複数のユーザコンピュータ104に結合されている。アプリケーションサーバ102およびユーザコンピュータ104はともに、「ホストコンピュータ」と考えられてもよい。アプリケーションサーバ102は、ストレージエリアネットワーク(SAN)108を介して、1つ以上の一次記憶装置106に結合されている。一次記憶装置106は、たとえば、EMC社、IBM社などの企業から入手可能であるようなディスクアレイであってもよい。また、これに代えて、バス(図示せず)または他のネットワークリンクが、アプリケーションサーバと一次記憶システム106との間の相互接続を提供してもよい。バスおよび/またはファイバチャネルネットワーク接続は、ホストコンピュータ(たとえばアプリケーションサーバ102)と記憶システム106との間で転送されるパケットのフォーマットを指示する小型部品システム相互接続(Small Component System Interconnect:SCSI)プロトコルなどのプロトコルを用いて動作してもよい。] 図1 [0004] 図1に示すネットワーク化コンピューティング環境は、たとえば大手金融機関または大企業が使用するような大型システムに特有のものである、ということが認識されるべきである。多くのネットワーク化コンピューティング環境は、図1に示す要素をすべて含む必要はないことが、理解されるべきである。たとえば、より小さいネットワーク化コンピューティング環境は単に、記憶システムに直接またはLANを介して接続されたホストコンピュータを含んでいてもよい。加えて、図1は別個のユーザコンピュータ104、アプリケーションサーバ102、およびメディアサーバ114を例示しているが、これらの機能は1つ以上のコンピュータに組合されてもよい。] 図1 [0005] 多くのネットワーク化コンピュータ環境は、一次記憶装置106に加え、少なくとも1つの二次またはバックアップ記憶システム110を含む。バックアップ記憶システム110は典型的にはテープライブラリであってもよいが、大容量で信頼性のある他の二次記憶システムが使用されてもよい。典型的には、これらの二次記憶システムは一次記憶装置よりも低速であるが、取外されてオフサイトで格納され得る一種のリムーバブルメディア(たとえばテープ、磁気ディスクまたは光ディスク)を含む。] [0006] 図示された例では、アプリケーションサーバ102は、たとえばイーサネット(登録商標)または他の通信リンク112を介して、バックアップ記憶システム110と直接通信できる場合がある。しかしながら、そのような接続は比較的低速であり、また、プロセッサ時間またはネットワーク帯域幅といった資源を使い尽くす場合がある。したがって、図示されたようなシステムは、たとえばファイバチャネルを用いてSAN108とバックアップ記憶システム110との間に通信リンク115を提供し得る1つ以上のメディアサーバ114を含んでいてもよい。] [0007] メディアサーバ114は、(ユーザコンピュータ104、メディアサーバ114、および/またはアプリケーションサーバ102といった)ホストコンピュータ、一次記憶装置106、およびバックアップ記憶システム110の間でのデータの転送を制御するバックアップ/復元アプリケーションを含むソフトウェアを実行してもよい。バックアップ/復元アプリケーションの例は、ベリタス(Veritas)、レガート(Legato)などの企業から入手可能である。データ保護のために、当該技術分野において公知であるように、ネットワーク化コンピューティング環境におけるさまざまなホストコンピュータおよび/または一次記憶装置からのデータを、バックアップ/復元アプリケーションを用いて周期的にバックアップ記憶システム110にバックアップしてもよい。] [0008] もちろん、上述のように、多くのネットワーク化コンピュータ環境はより小さく、また、図1に示す例示的なネットワーク化コンピュータ環境よりも構成要素が少ない場合がある、ということが認識されるべきである。したがって、メディアサーバ114は実際、単一のホストコンピュータにおいてアプリケーションサーバ102と組合され得ること、および、バックアップ/復元アプリケーションは、バックアップ記憶システム110に(直接的に、またはネットワークを通してなど間接的に)結合されたどのホストコンピュータ上でも実行され得ることも、認識されるべきである。] 図1 [0009] 典型的なバックアップ記憶システムの一例は、多数のテープカートリッジと、少なくとも1つのテープドライブと、カートリッジのテープドライブへの取付けおよび取外しを制御するロボット機構とを含むテープライブラリである。バックアップ/復元アプリケーションはロボット機構に、ある特定のテープカートリッジ、たとえばテープ番号0001の位置を特定し、データがテープに書込まれるようにそのテープカートリッジをテープドライブに取付けるよう、命令を与える。バックアップ/復元アプリケーションはまた、データをテープに書込むフォーマットを制御する。典型的には、バックアップ/復元アプリケーションは、SCSIコマンド、または他の標準化コマンドを用いて、ロボット機構に命令し、データをテープに書込むようテープドライブを制御し、以前に書込まれたデータをテープから回復させてもよい。] [0010] 従来のテープライブラリバックアップシステムは、速度、信頼性、および容量固定を含む多数の問題を抱えている。多くの大企業は、毎週、テラバイト単位のデータをバックアップする必要がある。しかしながら、高価で高性能のテープでも通常、30〜40メガバイト/秒(MB/s)、すなわち約50ギガバイト/時間(GB/hr)の速度でしか、データの読出/書込ができない。このため、1または2テラバイトのデータをテープバックアップシステムにバックアップするのに、少なくとも10〜20時間の連続データ転送時間がかかる場合がある。] [0011] 加えて、多くのテープ製造業者らは、(人間のオペレータもしくはロボット機構は移動または取付け動作中にテープを落とすかもしれないため、通常のテープライブラリでは比較的頻繁に起こり得るような)テープが落下した場合、もしくはテープが極度の温度または湿度といった理想的でない環境条件にさらされている場合に、データをテープに記憶させる(またはテープから復元する)ことができる、ということを保証しないであろう。したがって、制御された環境においてテープを格納するには、多大な注意を払う必要がある。さらに、(ロボット機構を含む)テープライブラリの複雑な機械は維持費がかさみ、また、個々のテープカートリッジは比較的高価で耐用年数が限られている。] [0012] 従来のテープライブラリおよび他の種類のバックアップ記憶媒体に関連するコストを考慮して、供給業者らはしばしば、バックアップ媒体要件全体を減少させるために、重複排除処理を自らの製品提供に取入れている。重複排除とは、時が経つにつれてデータの繰返しシーケンスを識別するプロセスであり、すなわち、それはデルタ圧縮の現れである。重複排除は典型的には、バックアップ記憶装置といったターゲット装置の1つの機能として実現される。バックアップデータストリーム内の冗長データを識別する行為は複雑であり、現在の最新技術では従来、ハッシュ指紋法およびパターン認識を用いて解決されている。] [0013] ハッシュ指紋法では、受信データストリームはまず、(その後の一致の最も高い可能性を提供するデータストリームにおいて、エッジとしても公知である良好な「区切り点」を予測することを試みる)整列処理を受け、次にハッシュ処理(現在の最新技術では通常、SHA−1)を受ける。データストリームは、ハッシュ処理によっていくつかの塊(サイズが通常、約8キロバイト〜12キロバイト)に分解され、各塊には、結果として生じるそのハッシュ値が割当てられる。このハッシュ値は、メモリ常駐テーブルと比較される。ハッシュ入力が見つかった場合、データは冗長であると仮定され、ディスク記憶システムに既に記憶された既存データブロックへのポインタと置き換えられる。既存データの位置はテーブルに載っている。ハッシュ入力が見つからない場合、データはディスク記憶システムに記憶され、その位置がそのハッシュとともにメモリ常駐テーブルに記録される。この機構を例示するいくつかの例を、データドメイン(Data Domain)に譲渡された米国特許第7,065,619号、およびクォンタム社(Quantum Corporation)に譲渡された米国特許第5,990,810号に見つけることができる。ハッシュ指紋法は典型的には、インラインで実行される。すなわち、データは、ディスクに書込まれる前にリアルタイムで処理される。] [0014] パターン認識によれば、受信データストリームはまず、比較的大きいデータブロック(約32MB)へと「塊にされ」、または分割される。データは次に、ハッシュ値のリストを組立てる単純なローリングハッシュ法によって処理される。ハッシュ値に対して変換が行なわれ、ここで、結果として生じる値の小さなリストは、データブロックの「指紋」を表わす。次に、他の所与の記憶ブロックに存在する少なくとも或る数の指紋ハッシュを探すために、ハッシュのテーブルに対して検索が行なわれる。最小一致数が満たされない場合、ブロックは固有であると考えられ、ディスクに直接記憶される。対応する指紋ハッシュが、メモリ常駐テーブルに追加される。最小一致数が満たされた場合、現在のデータブロックが以前に記憶されたデータブロックと一致する可能性がある。この場合、一致する指紋によって割当てられたディスクストレージのブロックがメモリに読込まれ、かつてハッシュされた候補ブロックとバイト毎に比較される。データの全シーケンスが等しい場合、データブロックは、ストレージの物理的にアドレス指定されたブロックへのポインタと置き換えられる。ブロック全体が一致しない場合、デルタ差分機構が採用されて、記憶される必要があるブロック内の最小データセットを判断する。その結果は、固有のデータと、以前に記憶されたデータの綿密に一致するブロックについてのリファレンスとの組合せである。この機構を例示する一例を、ディリジェント社(Diligent Corporation)に譲渡された米国特許出願第US2006/0059207号に見つけることができる。上述のように、この動作は典型的には、インラインで実行される。] 発明が解決しようとする課題 [0015] 発明の概要 この発明の局面および実施例は、従来のデータ重複排除手法の問題の一部またはすべてを克服もしくは緩和し、従来の重複排除手法を取入れたデータ記憶システムよりも優れた有効性および拡張性を提供し得る、データ記憶システムを提供する。] 課題を解決するための手段 [0016] 概観では、この発明の局面および実施例は、バックアップ/復元アプリケーションが物理的テープライブラリと同様に装置および媒体の同じ表示を見るように、従来のテープバックアップ記憶システムをエミュレートする、ランダムアクセスベースの記憶システムを提供する。この発明の記憶システムは、ソフトウェアおよびハードウェアを用いて、物理的テープ媒体をエミュレートし、それらを1つ以上のランダムアクセスディスクアレイと置き換えて、テープフォーマットで線形の順次データを、ディスクへの記憶にとって好適なデータに変換する。] [0017] この発明のいくつかの局面および実施例によれば、既存のバックアップデータセットを復号し、メタデータ(すなわち、ユーザデータについての情報を表わすデータ)を、検索可能なメタデータキャッシュに記憶させるための機構と、ファイルまたはオブジェクトを求めてメタデータキャッシュを検索および/または閲覧できるようにする機構と、これらのファイルまたはオブジェクトを、典型的なバックアップソフトウェアの既存のバックアップポリシーおよび慣行を通して記憶されたデータから、ウェブ接続を介してダウンロードするための機構とが提供される。また、既存の認証機構を通してユーザを認証し、現在のユーザの認証情報に基づいてメタデータキャッシュの表示を制限するための機構が含まれていてもよい。] [0018] この発明の局面および実施例は、冗長データのバックアップデータオブジェクトからの除去も提供する。この除去処理は「重複排除」と呼ばれ得るが、バックデータのコピーを保持するために必要な記憶容量を削減し、ひいてはバックアップデータを記憶するために必要な電子媒体の量を削減する。この発明の少なくともいくつかの局面に従った重複排除処理の実施例は、メタデータを用いることによってコンピューティング資源を効率的に使用し、重複排除処理を最適化する。] [0019] 以下にさらに説明するように、いくつかの実施例は、重複排除処理全体の知的誘導に向けられている。これらの実施例のいくつかでは、データ記憶システムは、ソフトウェアおよびハードウェアを用いて、データオブジェクトを、重複排除および記憶用のいくつかの重複排除ドメインのうちの1つに誘導する。加えて、所与のデータ記憶システムによって提示された制約内でデータの重複排除を管理する重複排除ドメインを構成するために、ハードウェアおよび/またはソフトウェアで実現されるアプリケーションが提供される。いくつかの実施例は、従来のハッシュ指紋手法が、利用可能なメモリの量によって制約される、という認識を表明している。他の実施例は、パターン認識アプローチでは、ランダムなI/O作業負荷が実質的な制限である、という認識を反映している。このため、これらの実施例は、従来のハッシュ指紋法およびパターン認識重複排除手法によって課される制限の認識を表明している。] [0020] この発明の他の局面および実施例によれば、メタデータキャッシュにおいて複数のカートリッジ表現の論理的併合を行なうための機構と、新しく合成されたカートリッジにラベルおよびバーコードを適切に付与し、それが有効なデータセットとしてバックアップ/復元ソフトウェアに受付けられるようにするための機構とが提供される。また、この発明のさらに別の局面および実施例によれば、合成カートリッジを表わすデータ要素の複数のコピーを記憶するか、またはメタデータキャッシュにおいて表わされた既存データへのポインタのみを記憶するための機構が提供される。] [0021] 一実施例によれば、アプリケーション層データオブジェクトの重複排除を誘導するための方法が提供される。この方法は、当該アプリケーション層データオブジェクトを受信する行為と、複数の重複排除ドメインからある重複排除ドメインを、当該重複排除ドメインに関連付けられたデータオブジェクト特性に少なくとも部分的に基づいて選択する行為と、当該アプリケーション層データオブジェクトが当該特性を有すると判断する行為と、当該選択された重複排除ドメインに当該アプリケーション層データオブジェクトを誘導する行為とを含む。] [0022] 一例では、当該アプリケーション層データオブジェクトを受信する行為は、データストリームを受信する行為と、当該データストリームに含まれるメタデータを用いて当該アプリケーション層データオブジェクトを識別する行為とを含んでいてもよい。別の例では、当該データストリームを受信する行為は、多重化されたデータストリームを受信する行為を含んでいてもよい。別の例によれば、この方法は、当該アプリケーション層データオブジェクトを用いて、当該データストリームに含まれるメタデータを抽出する行為をさらに含んでいてもよい。さらに別の例では、当該複数の重複排除ドメインから当該重複排除ドメインを選択する行為は、当該アプリケーション層データオブジェクトに関連付けられた当該抽出されたメタデータを、当該重複排除ドメインに関連付けられた少なくとも1つの当該特性と比較する行為を含んでいてもよい。さらに別の例によれば、当該データストリームに含まれる当該メタデータを抽出する行為は、バックアップポリシー名、データ源のタイプ、データ源の名前、バックアップアプリケーション名、オペレーションシステムのタイプ、データタイプ、バックアップタイプ、ファイル名、ディレクトリ構造、および時系列情報のうちの少なくとも1つを抽出する行為を含んでいてもよい。] [0023] 別の例では、この方法は、複数の重複排除方法のうちの1つを使用するよう、当該複数の重複排除ドメインの各々を構成する行為をさらに含んでいてもよい。別の例によれば、当該複数の重複排除ドメインの各々を構成する行為は、ハッシュ指紋法、パターン認識、および内容認識重複排除を含む群から選択される1つの重複排除方法を使用するよう、当該複数の重複排除ドメインの各々を構成する行為を含んでいてもよい。さらに別の例では、この方法は、当該複数の重複排除ドメインの各々を少なくとも1つのデータオブジェクト特性に関連付ける行為をさらに含んでいてもよい。追加的な例によれば、この方法は、当該選択された重複排除ドメイン内で、当該アプリケーション層データオブジェクトを重複排除する行為と、重複排除の行為の結果に基づいて、当該複数の重複排除ドメインのうちの少なくとも1つに関連付けられた当該データオブジェクト特性を調節する行為とをさらに含んでいてもよい。さらに別の例では、当該データオブジェクト特性を調節する行為は、重複排除ドメインデータベースにデータを記憶させる行為を含んでいてもよい。] [0024] 別の実施例によれば、上述のアプリケーション層データオブジェクトの重複排除を誘導するための方法の行為を実行するために、グリッドコンピューティング環境が提供される。] [0025] 別の実施例によれば、上述のアプリケーション層データオブジェクトの重複排除を誘導するための方法の行為を実行するために、バックアップ記憶システムが提供される。この実施例では、データがバックアップ記憶システムにバックアップされていない間に、この方法が実行される。] [0026] 別の実施例によれば、上述のアプリケーション層データオブジェクトの重複排除を誘導するための方法の行為を実行するために、バックアップ記憶システムが提供される。この実施例では、データがバックアップ記憶システムにバックアップされている間に、この方法が実行される。] [0027] 別の実施例によれば、命令を規定するコンピュータ読取り可能信号が記憶されたコンピュータ読取り可能媒体が提供される。これらの命令は、コンピュータによって実行された結果、当該アプリケーション層データオブジェクトを受信する行為と、複数の重複排除ドメインからある重複排除ドメインを、当該重複排除ドメインに関連付けられたデータオブジェクト特性に少なくとも部分的に基づいて選択する行為と、当該アプリケーション層データオブジェクトが当該特性を有すると判断する行為と、当該選択された重複排除ドメインに当該アプリケーション層データオブジェクトを誘導する行為とを、当該コンピュータに行なうよう命令する。] [0028] 別の実施例によれば、アプリケーション層データオブジェクトの重複排除を誘導するためのシステムが提供される。このシステムは、複数の重複排除ドメインを含み、当該複数の重複排除ドメインのうちの各重複排除ドメインは、複数のアプリケーション層データオブジェクトに共通の少なくとも1つの特性に関連付けられており、このシステムはさらに、当該複数の重複排除ドメインに結合されたコントローラを含み、当該コントローラは、当該アプリケーション層データオブジェクトを受信し、当該アプリケーション層データオブジェクトが、ある重複排除ドメインに関連付けられた当該少なくとも1つの特性を有すると判断し、当該重複排除ドメインに当該アプリケーション層データオブジェクトを誘導するよう構成されている。] [0029] 一例では、当該コントローラはさらに、データストリームを受信し、当該データストリームに含まれるメタデータを用いて当該アプリケーション層データオブジェクトを識別するよう構成されていてもよい。別の例では、当該データストリームは多重化されていてもよい。別の例では、当該コントローラはさらに、当該アプリケーション層データオブジェクトを用いて、当該データストリームに含まれるメタデータを抽出するよう構成されていてもよい。さらに別の例では、当該コントローラはさらに、当該アプリケーション層データオブジェクトが当該重複排除ドメインに関連付けられた当該少なくとも1つの特性を有するということを、当該アプリケーション層データオブジェクトに関連付けられた当該抽出されたメタデータを当該重複排除ドメインに関連付けられた当該少なくとも1つの特性と比較することによって判断するよう構成されていてもよい。さらに別の例では、当該コントローラはさらに、バックアップポリシー名、データ源のタイプ、データ源の名前、バックアップアプリケーション名、オペレーションシステムのタイプ、データタイプ、バックアップタイプ、ファイル名、ディレクトリ構造、および時系列情報のうちの少なくとも1つを抽出するよう構成されていてもよい。追加的な例では、当該コントローラはさらに、複数の重複排除方法のうちの1つを使用するよう、当該複数の重複排除ドメインの各々を構成するよう構成されていてもよい。さらに別の例では、当該コントローラはさらに、ハッシュ指紋法、パターン認識、および内容認識重複排除を含む群から選択される1つの重複排除方法を使用するよう、当該複数の重複排除ドメインの各々を構成するよう構成されていてもよい。] [0030] 別の例によれば、当該コントローラはさらに、当該複数の重複排除ドメインの各々を少なくとも1つのデータオブジェクト特性に関連付けるよう構成されていてもよい。別の例では、当該コントローラはさらに、当該選択された重複排除ドメイン内で、当該アプリケーション層データオブジェクトの重複排除を引き起こし、重複排除の行為の結果に基づいて、当該複数の重複排除ドメインのうちの少なくとも1つに関連付けられた当該データオブジェクト特性を調節するよう構成されていてもよい。さらに別の例では、当該コントローラはさらに、重複排除ドメインデータベースにデータを記憶させるよう構成されていてもよい。別の例では、このシステムは、グリッドコンピューティング環境に含まれていてもよい。さらに別の例では、当該コントローラはさらに、データが当該システムにバックアップされていない間に、当該アプリケーション層データオブジェクトを受信し、当該アプリケーション層データオブジェクトがある重複排除ドメインに関連付けられた当該少なくとも1つの特性を有すると判断し、当該重複排除ドメインに当該アプリケーション層データオブジェクトを誘導するよう構成されていてもよい。加えて、一例によれば、当該コントローラはさらに、データが当該システムにバックアップされている間に、当該アプリケーション層データオブジェクトを受信し、当該アプリケーション層データオブジェクトがある重複排除ドメインに関連付けられた当該少なくとも1つの特性を有すると判断し、当該重複排除ドメインに当該アプリケーション層データオブジェクトを誘導するよう構成されていてもよい。] [0031] さらに別の局面、実施例、ならびにこれらの例示的な局面および実施例の利点を、以下に詳細に説明する。また、前述の情報および以下の詳細な説明はともに、さまざまな局面および実施例の単なる例示であり、請求されている局面および実施例の性質および特徴を理解するための概要または枠組を提供するよう意図されている。さまざまな局面および実施例の例示ならびにさらなる理解を提供するために、添付図面が含まれており、この明細書に取入れられ、この明細書の一部を構成している。図面は、明細書の残りとともに、説明され請求されている局面および実施例の原理ならびに動作を説明するよう機能する。] [0032] 図面の簡単な説明 添付図面を参照して、少なくとも1つの実施例のさまざまな局面を以下に説明する。縮尺通りであるよう意図されてはいない図において、さまざまな図に示された各々の同一またはほぼ同一の構成要素は、同じ番号で表わされている。明確性のため、すべての図においてすべての構成要素に名前が付けられているとは限らない。図は、例示および説明のために提供されており、この発明の限界の定義として意図されてはいない。] 図面の簡単な説明 [0033] バックアップ記憶システムを含む大規模なネットワーク化コンピューティング環境の一例のブロック図である。 この発明の局面に従った記憶システムを含むネットワーク化コンピューティング環境の一例のブロック図である。 この発明の局面に従った記憶システムの一例のブロック図である。 この発明の局面に従った記憶システムの一例の仮想レイアウトを示すブロック図である。 この発明の局面に従ったシステムファイルの一例の概略的レイアウトである。 この発明の局面に従ったテープディレクトリ構造の一例である。 この発明の局面に従った合成フルバックアップを作成する方法の一例を示す図である。 この発明に従った合成フルバックアップを含む一連のバックアップデータセットの一例の概略図である。 メタデータキャッシュ構造の一例の図である。 合成フルバックアップデータセットを記憶する仮想カートリッジの一例の図である。 合成フルバックアップデータセットを記憶する仮想カートリッジの別の例の図である。 この発明に従ったデータオブジェクトを重複排除する方法のフローチャートである。 2つのバックアップデータオブジェクトの図である。 図13Aに示すバックアップデータオブジェクトの重複排除されたコピーの図である。 図13Aに示すバックアップデータオブジェクトの重複排除されたコピーの別の図である。 この発明の局面に従った重複排除誘導子の一例のブロック図である。 この発明に従った、データオブジェクトの重複排除を誘導する方法のフローチャートである。] 図13A 実施例 [0034] 詳細な説明 添付図面を参照して、さまざまな実施例およびそれらの局面を、ここにより詳細に説明する。この発明はその適用が、以下の説明で述べられまたは図面に示された構成の詳細および構成要素の配置に限定されない、ということが認識されるべきである。この発明は他の実施例が可能であり、さまざまなやり方で実践または実行され得る。特定の実現化例は、例示的な目的のためにのみここに提供され、限定的であるよう意図されてはいない。特に、任意の1つ以上の実施例に関連して説明される行為、要素、および特徴は、任意の他の実施例における同様の役割から除外されないよう意図されている。また、ここに使用される表現および用語は説明のためであり、限定的であるよう見なされるべきではない。ここでの「含む」、「備える」、「有する」、「含有する」、「関与する」、およびそれらの変形の使用は、この後に列挙される項目およびそれらの均等物、ならびに追加の項目を包含するよう意図されている。] [0035] ここに開示されたどの実施例も、他の実施例と組合されてもよく、「ある実施例」、「いくつかの実施例」、「代替的な実施例」、「さまざまな実施例」、「一実施例」、「少なくとも1つの実施例」、「このおよび他の実施例」などへの言及は、必ずしも相互に排他的ではなく、その実施例に関連して説明されたある特定の特徴、構造、または特性が、少なくとも1つの実施例に含まれ得ることを示すよう意図されている。ここに使用されるような用語は、必ずしもすべて同じ実施例に言及しているとは限らない。どの実施例も、ここに開示された局面と調和する態様で他の実施例と組合されてもよい。「または」への言及は、「または」を用いて説明された用語が、説明された用語のうちの1つ、2つ以上、およびすべてのいずれも示すように、包含的であるよう解釈され得る。] [0036] ここに使用されているように、「ホストコンピュータ」という用語は、記憶システムまたは他のホストコンピュータといった他の装置と通信可能な、パーソナルコンピュータ、ワークステーション、メインフレーム、ネットワーク化クライアント、サーバなどといった、少なくとも1つのプロセッサを有するあらゆるコンピュータを指す。ホストコンピュータは、(図1を参照して前述されたような)メディアサーバおよびアプリケーションサーバ、ならびに(ユーザワークステーション、PC、メインフレームなどであり得る)ユーザコンピュータを含んでいてもよい。加えて、この開示においては、「ネットワーク化コンピュータ環境」という用語は、複数のホストコンピュータが、1つ以上の共有記憶システムに、記憶システムがホストコンピュータの各々と通信できるような態様で接続されている、あらゆるコンピューティング環境を含む。ファイバチャネルは、この発明の実施例で使用され得る通信ネットワークの一例である。しかしながら、ここに説明されるネットワークがファイバチャネルに限定されないこと、および、ファイバチャネルの代わりに、またはそれに加えて、さまざまなネットワーク構成要素が、トークンリング(TokenRIng)またはイーサネット(登録商標)といったネットワーク接続を介して、もしくは異なるネットワーク接続の組合せを介して互いに通信し得る、ということが認識されるべきである。また、この発明の局面は、SCSIまたはパラレルSCSIといったバストポロジーでも使用され得る。] 図1 [0037] この発明のさまざまな実施例および局面によれば、1つ以上のディスクアレイを用いて、リムーバブルメディアベースの記憶システムをエミュレートし得る、仮想のリムーバブルメディアライブラリバックアップ記憶システムが提供される。この発明の実施例を用いると、ユーザが既存のバックアップ手順に修正または調節を加える必要なく、または新しいバックアップ/復元アプリケーションを購入する必要なく、リムーバブルメディア(テープ、磁気ディスク、光ディスクなど)にデータをバックアップするためにこれまで使用されてきたのと同じバックアップ/復元アプリケーションを用いて、データがディスクアレイにバックアップされ得る。ここに詳細に説明される一実施例では、エミュレートされるリムーバブルメディアはテープであり、この発明のバックアップ記憶システムは、テープと従来のテープライブラリシステムでテープを取扱うために使用されるロボット機構とを含むテープライブラリシステムをエミュレートする。] [0038] この発明の実施例を用いてバックアップされ、復元され得るデータは、さまざまなデータオブジェクトへと編成され得る。これらのデータオブジェクトは、データを記憶し得るあらゆる構造を含み得る。例示的なデータオブジェクトの非限定的なリストは、ビット、バイト、データファイル、データブロック、データディレクトリ、バックアップデータセット、および仮想カートリッジを含み、それらを以下にさらに説明する。この開示の大半はデータファイルのバックアップおよび復元に言及しているが、この発明の実施例はあらゆるデータオブジェクトを操作してもよく、「データファイル」という用語が「データオブジェクト」と交換可能である、ということが認識されるべきである。加えて、当業者には認識されるように、ここに説明される実施例は、オープンシステム相互接続(Open System Interconnection:OSI)モデルのアプリケーション層で動作し、他のOSIモデル層によって表わされる基本ネットワークサービスを提供するために、他のソフトウェアおよび/またはハードウェアに依存して構築されている。] [0039] 加えて、実施例は、利用可能なコンピューティング資源をより効率的に利用するために、バックアップされたデータを重複排除してもよい。いくつかの実施例によれば、データ重複排除は、インラインで、すなわち重複排除され記憶されるべきデータをデータ記憶システムが受信している間に、行なわれてもよい。他の実施例では、データ重複排除は、オフラインで、すなわち重複排除されるべきデータをデータ記憶システムが既に記憶した後で、行なわれてもよい。以下にさらに詳述するように、実施例は、拡張性の高い重複排除サービスを提供するために、従来のおよび従来にないさまざまな重複排除手法を知的に誘導し得る。] [0040] この発明の局面に従った記憶システムは、ともに(バックアップ/復元アプリケーションを実行している)ホストコンピュータおよびバックアップ記憶媒体とインターフェイスをとる、ハードウェアおよびソフトウェアを含む。記憶システムは、バックアップ/復元アプリケーションが物理的テープライブラリと同様に装置および媒体の同じ表示を見るように、テープまたは他の種類のリムーバブルな記憶媒体をエミュレートし、線形で順次のテープフォーマットデータを、ランダムアクセスディスクへの記憶にとって好適なデータに変換するよう、設計され得る。このように、この発明の記憶システムは、新しいバックアップ/復元アプリケーションソフトウェアまたはポリシーを必要とすることなく、(以下に説明するように、ユーザが個々のバックアップユーザファイルを検索できるようにするなどの)向上した機能性を提供し得る。] [0041] 図2を参照して、この発明の局面に従ったバックアップ記憶システム170を含むネットワーク化コンピューティング環境の一例を、ブロック図の形で示す。図示されているように、ホストコンピュータ120は、ネットワーク接続121を介して、記憶システム170に結合されている。このネットワーク接続121は、たとえば、ホストコンピュータ120と記憶システム170との間のデータの高速転送を可能にするファイバチャネル接続であってもよい。ホストコンピュータ120は1つ以上のアプリケーションサーバ102(図1参照)および/またはメディアサーバ114(図1参照)であっても、またはそれらを含んでいてもよく、ネットワーク化コンピューティング環境に存在する任意のコンピュータからの、または一次記憶装置106(図1参照)からのデータのバックアップを可能にしてもよい、ということが認識されるべきである。加えて、1つ以上のユーザコンピュータ136も、イーサネット(登録商標)接続といった別のネットワーク接続138を介して、記憶システム170に結合されてもよい。以下に詳細に説明するように、記憶システムは、ユーザコンピュータ136のユーザが、記憶システムからバックアップユーザファイルを閲覧し、またオプションで復元することができるようにしてもよい。] 図1 図2 [0042] 記憶システムは、以下により詳細に説明されるような、たとえば1つ以上のディスクアレイであってもよいバックアップ記憶媒体126を含む。バックアップ記憶媒体126は、ホストコンピュータ120からのバックアップデータ用の実記憶空間を提供する。しかしながら、記憶システム170はまた、ホストコンピュータ120上で実行中のバックアップ/復元アプリケーションにとって、データがまるで従来のリムーバブルな記憶媒体にバックアップ中であるかのように見えるように、テープライブラリなどのリムーバブルメディア記憶システムをエミュレートする、ソフトウェアおよび追加のハードウェアを含んでいてもよい。このため、図2に示すように、記憶システム170は、たとえば、仮想のまたはエミュレートされたテープなどのリムーバブルな記憶媒体を表わす、「エミュレートされた媒体」134を含んでいてもよい。これらの「エミュレートされた媒体」134は、記憶システムソフトウェアおよび/またはハードウェアによってホストコンピュータに提示されており、ホストコンピュータ120には物理的記憶媒体のように見える。以下に詳細に説明されるように、エミュレートされた媒体134と実バックアップ記憶媒体126との間でさらにインターフェイスをとっているのは、記憶システムコントローラ(図示せず)と、ホストコンピュータ120からデータを受付けてそのデータをバックアップ記憶媒体126上に記憶させるスイッチングネットワーク132とであってもよい。このように、記憶システムは、ホストコンピュータ120に対し、従来のテープ記憶システムを「エミュレート」する。] 図2 [0043] 一実施例によれば、記憶システムは、ホストコンピュータ120から記憶システム170上にバックアップされたユーザデータに関するメタデータを記憶する「論理メタデータキャッシュ」242を含んでいてもよい。ここに使用されているように、「メタデータ」という用語は、ユーザデータについての情報を表わし、実ユーザデータの属性を記述するデータを指す。データオブジェクトに関するメタデータの非限定的な例示的リストは、データオブジェクトサイズ、一次ストレージにおけるデータオブジェクトの論理的および/または物理的位置、データオブジェクトの作成日、データオブジェクトの最終修正日、データオブジェクトを記憶させたバックアップポリシー名、たとえばデータオブジェクトの名前または透かしといった識別子、および、たとえばデータオブジェクトに関連付けられたソフトウェアアプリケーションといったデータオブジェクトのデータタイプを含んでいてもよい。論理メタデータキャッシュ242は、ユーザおよび/またはソフトウェアアプリケーションがバックアップユーザファイルをランダムに配置し、ユーザファイルを互いに比較し、さもなければバックアップユーザファイルにアクセスして操作することを可能にする、データの検索可能な集合体を表わしている。論理メタデータキャッシュ242に記憶されたデータを使用し得るソフトウェアアプリケーションの2つの例は、以下により十分に説明される、合成フルバックアップアプリケーション240とエンドユーザ復元アプリケーション300とを含む。加えて、以下により詳細に説明される重複排除誘導子は、記憶システム内で拡張可能な重複排除サービスを提供するために、メタデータを使用してもよい。] [0044] 概観では、合成フルバックアップアプリケーション240は、1つの既存のフルバックアップデータセットと1つ以上の増分バックアップデータセットとから、合成フルバックアップデータセットを作成できる。合成フルバックアップは周期的な(たとえば週ごとの)フルバックアップを行なう必要性をなくすことができ、それによりかなりの時間とネットワーク資源とを節約する。合成フルバックアップアプリケーション240の詳細を、以下にさらに説明する。同様に以下にさらに詳細に説明されるエンドユーザ復元アプリケーション300は、エンドユーザ(たとえばユーザコンピュータ136のオペレータ)が記憶システム170から、以前にバックアップされたユーザファイルをブラウズし、位置特定し、閲覧し、および/または復元することができるようにする。] [0045] 上述のように、記憶システム170は、ホストコンピュータ120およびバックアップ記憶媒体126とインターフェイスをとるハードウェアおよびソフトウェアを含む。この発明の実施例のハードウェアおよびソフトウェアはともに、ホストコンピュータ120の観点からは、データがテープ上にバックアップされるように見えるものの、実際には、たとえば複数のディスクアレイといった別の記憶媒体上にデータがバックアップされるように、従来のテープライブラリバックアップシステムをエミュレートしてもよい。] [0046] 図3を参照して、この発明の局面に従った記憶システム170の一例を、ブロック図の形で示す。一例では、記憶システム170のハードウェアは、記憶システムコントローラ122と、記憶システムコントローラ122をバックアップ記憶媒体126に接続するスイッチングネットワーク132とを含む。記憶システムコントローラ122は、(単一のプロセッサであっても複数のプロセッサであってもよい)プロセッサ127と、記憶システムソフトウェアのすべてまたは一部を実行し得るメモリ129(たとえばRAM、ROM、PROM、EEPROM、フラッシュメモリなど、またはそれらの組合せ)とを含む。メモリ129はまた、バックアップ記憶媒体126上に記憶されたデータに関するメタデータを記憶するために使用されてもよい。この発明の実施例を実現するプログラミングコードを含むソフトウェアは、通常、RAM、ROM、光ディスクまたは磁気ディスク、もしくはテープなどといった、コンピュータにより読取可能および/または書込可能な不揮発性記録媒体上に記憶され、次にメモリ129へとコピーされ、そこでそれは次にプロセッサ127によって実行される。そのようなプログラミングコードは、たとえば、アセンブラ(Assembler)、ジャバ(Java(登録商標))、ビジュアルベーシック(Visual Basic)、C、C♯、またはC++、フォートラン(Fortran)、パスカル(Pascal)、アイフェル(Eiffel)、ベーシック(Basic)、コボル(COBOL)、もしくはそれらの組合せといった複数のプログラミング言語のいずれかで書かれていてもよい。なぜなら、この発明はある特定のプログラミング言語に限定されていないためである。典型的には、動作時、プロセッサ127は、この発明の実施例を実現するコードなどのデータが、不揮発性記録媒体から、不揮発性記録媒体よりもプロセッサによる情報へのアクセスが迅速な、RAMなどの別の形のメモリに読出されるようにする。] 図3 [0047] 図3に示すように、コントローラ122は、コントローラ122をホストコンピュータ120に、およびスイッチングネットワーク132に接続する、多数のポートアダプタも含む。図示されているように、ホストコンピュータ120は、たとえばファイバチャネルポートアダプタであり得るポートアダプタ124aを介して、記憶システムに結合される。記憶システムコントローラ122を介して、ホストコンピュータ120はバックアップ記憶媒体126上にデータをバックアップし、バックアップ記憶媒体126からデータを回復できる。] 図3 [0048] 図示された例では、スイッチングネットワーク132は、1つ以上のファイバチャネルスイッチ128a、128bを含んでいてもよい。記憶システムコントローラ122は、記憶システムコントローラをファイバチャネルスイッチ128a、128bに結合する複数のファイバチャネルポートアダプタ124bおよび124cを含む。ファイバチャネルスイッチ128a、128bを介して、記憶システムコントローラ122は、データがバックアップ記憶媒体126上にバックアップされるようにする。図3に示すように、スイッチングネットワーク132は、イーサネット(登録商標)ポートアダプタ125a、125bを介して記憶システムコントローラ122に結合された1つ以上のイーサネット(登録商標)スイッチ130a、130bをさらに含んでいてもよい。一例では、記憶システムコントローラ122は、以下に説明するように、記憶システム170がホストコンピュータ(たとえばユーザコンピュータ)と通信できるようにたとえばLAN103に結合され得る、別のイーサネット(登録商標)ポートアダプタ125Cをさらに含む。] 図3 [0049] 図3に示す例では、記憶システムコントローラ122は、2つのファイバチャネルスイッチと2つのイーサネット(登録商標)スイッチとを含むスイッチングネットワークを介して、バックアップ記憶媒体126に結合されている。記憶システム170内に各種スイッチを少なくとも2つずつ設けることは、システムにおける単一障害点をなくす。言い換えれば、一方のスイッチ(たとえばファイバチャネルスイッチ128a)が故障したとしても、記憶システムコントローラ122は依然として、別のスイッチを介してバックアップ記憶媒体126と通信可能である。そのような構成は、信頼性および速度の点で有利であり得る。たとえば、上述のように、冗長構成要素の設置および単一障害点の排除により、信頼性が向上する。加えて、いくつかの実施例では、記憶システムコントローラは、ファイバチャネルスイッチの一部またはすべてを並行して使用して、バックアップ記憶媒体126上にデータをバックアップすることができ、それにより全体的なバックアップ速度を高める。しかしながら、システムが各種スイッチを2つずつ以上備えることも、スイッチングネットワークがファイバチャネルスイッチおよびイーサネット(登録商標)スイッチの双方を備えることも、要求されてはいない、ということが認識されるべきである。さらに、バックアップ記憶媒体126が単一のディスクアレイを備える例では、スイッチは全く必要ない。] 図3 [0050] 上述のように、一実施例では、バックアップ記憶媒体126は1つ以上のディスクアレイを含んでいてもよい。好ましい一実施例では、バックアップ記憶媒体126は、複数のATAまたはSATAディスクを含む。そのようなディスクは「既製の」製品であり、EMC、IBMなどの製造業者らからの従来の記憶アレイ製品と比べ、比較的安価であり得る。さらに、リムーバブルメディア(たとえばテープ)のコスト、およびそのような媒体の耐用年数が限られているという事実を考慮すると、そのようなディスクはコストの点で従来のテープベースのバックアップ記憶システムと同程度である。加えて、そのようなディスクは、テープよりも実質的に速くデータの読出/書込ができる。たとえば、単一のファイバチャネル接続上では、データはディスク上に少なくとも約150MB/sの速度でバックアップ可能であるが、それは変換すると約540GB/hrであり、テープのバックアップ速度よりも著しく(たとえば1桁)速い。加えて、いくつかのファイバチャネル接続が並行して実現されてもよく、それにより速度がさらに速くなる。この発明の一実施例によれば、バックアップ記憶媒体は、多数のRAID(Redundant Array of Independent Disks:独立ディスク冗長アレイ)方式のうちのいずれかを実現するよう編成されてもよい。たとえば、一実施例では、バックアップ記憶媒体はRAID−5実装を実現してもよい。] [0051] 上述のように、この発明の実施例は、ディスクアレイを用いて従来のテープライブラリバックアップシステムをエミュレートして、物理的バックアップ記憶媒体としてのテープカートリッジを置き換え、それにより「仮想テープライブラリ」を提供する。従来のテープライブラリにあった物理的テープカートリッジは、ここに「仮想カートリッジ」と呼ばれるものに置き換えられる。この開示のために、「仮想テープライブラリ」という用語が、ソフトウェアおよび/または物理的ハードウェアにおいてたとえば1つ以上のディスクアレイとして実現され得る、エミュレートされたテープライブラリを指す、ということが認識されるべきである。さらに、この説明は主としてエミュレートされたテープに言及しているが、記憶システムはたとえばCD−ROMまたはDVD−ROMといった他の記憶媒体もエミュレートし得ること、および「仮想カートリッジ」という用語が一般に、エミュレートされた記憶媒体、たとえばエミュレートされたテープまたはエミュレートされたCDを指す、ということが認識されるべきである。一実施例では、仮想カートリッジは実際、1つ以上のハードディスクに対応している。] [0052] したがって、一実施例では、バックアップ/復元アプリケーションには、データがテープ上にバックアップ中であるかのように見えるように、テープライブラリをエミュレートするために、ソフトウェアインターフェイスが提供される。しかしながら、実データライブラリは1つ以上のディスクアレイに置き換えられ、データが実際にはこれらのディスクアレイ上にバックアップされているようになっている。他の種類のリムーバブルメディア記憶システムがエミュレートされてもよく、この発明はテープライブラリ記憶システムのエミュレーションに限定されない、ということが認識されるべきである。ここで以下の説明は、記憶システム170に含まれるソフトウェアのさまざまな局面、特徴、および動作を説明する。] [0053] ソフトウェアは記憶システム170に「含まれて」いるように説明され、記憶システムコントローラ122のプロセッサ127(図3参照)によって実行され得るものの、すべてのソフトウェアが記憶システムコントローラ122上で実行されることは要求されていない、ということが認識されるべきである。合成フルバックアップアプリケーションおよびエンドユーザ復元アプリケーションといったソフトウェアプログラムは、ホストコンピュータおよび/またはユーザコンピュータ上で実行されてもよく、その一部は、記憶システムコントローラ、ホストコンピュータ、およびユーザコンピュータのすべてまたは一部にわたって分散されてもよい。このため、記憶システムコントローラがコンピュータといった含有された物理的実体であることは要求されていない、ということが認識されるべきである。記憶システム170は、たとえばメディアサーバ114またはアプリケーションサーバ102といったホストコンピュータ上に常駐するソフトウェアと通信してもよい。加えて、記憶システムは、同じまたは異なるホストコンピュータ上で実行され得る、もしくはそれらのホストコンピュータ上に常駐し得るいくつかのソフトウェアアプリケーションを含有していてもよい。さらに、記憶システム170は機器の個別の部品に限定されないということが認識されるべきであるが、いくつかの実施例では、記憶システム170は機器の個別の部品として具体化されてもよい。一例では、記憶システム170は、従来のテープライブラリバックアップシステムの「プラグアンドプレイ」(すなわち既存のバックアップ手順およびポリシーに修正を加える必要がない)代替物として作用する内蔵ユニットとして提供されてもよい。そのような記憶システムユニットはまた、冗長性または追加の記憶容量を提供するために、従来のバックアップシステムを含むネットワーク化コンピューティング環境において使用されてもよい。別の実施例では、記憶システム116は、クラスタ化された環境、またはグリッド環境といった分散コンピューティング環境において実現されてもよい。] 図3 [0054] 上述のように、一実施例によれば、ホストコンピュータ120(たとえばアプリケーションサーバ102またはメディアサーバ114であってもよい、図1参照)は、ホストコンピュータ120を記憶システム170に結合するネットワークリンク(たとえばファイバチャネルリンク)121を介して、バックアップ記憶媒体126上にデータをバックアップしてもよい。以下の説明は主としてエミュレートされた媒体へのデータのバックアップに言及しているが、原理は、エミュレートされた媒体からのバックアップデータの復元にも当てはまる。上述のように、ホストコンピュータ120とエミュレートされた媒体134との間のデータの流れは、バックアップ/復元アプリケーションによって制御され得る。バックアップ/復元アプリケーションの観点からは、データが実際にはエミュレートされた媒体の物理的バージョン上にバックアップ中であるかのように見え得る。] 図1 [0055] 図4を参照して、記憶システムソフトウェア150は、エミュレートされた媒体を表わし、ホストコンピュータ120上に常駐するバックアップ/復元アプリケーション140とバックアップ記憶媒体126との間にインターフェイスを提供する、1つ以上の論理的抽象層を含んでいてもよい。ソフトウェア150は、バックアップ/復元アプリケーション140からテープフォーマットデータを受付け、そのデータを、ランダムアクセスディスク(たとえばハードディスク、光ディスクなど)への記憶にとって好適なデータに変換する。一例では、このソフトウェア150は記憶システムコントローラ122のプロセッサ127上で実行され、メモリ129に記憶されてもよい(図3参照)。] 図3 図4 [0056] 一実施例によれば、ソフトウェア150は、テープ、テープドライブ、およびテープドライブとの間でテープを移送するために使用されるロボット機構のSCSIエミュレーションを提供し得る、ここに仮想テープライブラリ(virtual tape library:VTL)層142と呼ばれる層を含んでいてもよい。バックアップ/復元アプリケーション140は、たとえば矢印144で表わされるSCSIコマンドを用いて、VTL142と通信してもよい(たとえばエミュレートされた媒体にデータをバックアップするか書込んでもよい)。このため、VTLは、他の記憶システムソフトウェアおよびハードウェアとバックアップ/復元アプリケーションとの間にソフトウェアインターフェイスを形成してもよく、エミュレートされた記憶媒体134(図2)をバックアップ/復元アプリケーションに提示し、エミュレートされた媒体が、バックアップ/復元アプリケーションには、従来のリムーバブルバックアップ記憶媒体に見えるようにする。] 図2 [0057] ここにファイルシステム層146と呼ばれる第2のソフトウェア層が、(VTLで表わされた)エミュレートされた記憶媒体と物理的バックアップ記憶媒体126との間にインターフェイスを提供してもよい。一例では、ファイルシステム146は、バックアップ記憶媒体126との間でデータの読出および書込を行なうために、たとえば矢印148で表わされるSCSIコマンドを用いてバックアップ記憶媒体126と通信する、小型のオペレーションシステムとして作用する。] [0058] 一実施例では、VTLは包括的なテープライブラリサポートを提供しており、どのSCSIメディアチェンジャもサポートしてもよい。エミュレートされたテープ装置は、IBMLTO−1およびLTO−2テープ装置、クォンタムスーパーDLT320テープ装置、クォンタム P3000テープライブラリシステム、またはストレージテック(STORAGETEK) L180テープライブラリシステムを含み得るが、それらに限定されない。VTL内では、各仮想カートリッジは、データが記憶されるにつれて動的に成長し得るファイルである。これは、サイズが固定された従来のテープカートリッジとは対照的である。図5に関して以下にさらに説明するように、1つ以上の仮想カートリッジがシステムファイルに記憶されてもよい。] 図5 [0059] 図5は、この発明の一実施例に従ったシステムファイル200を示す、ファイルシステムソフトウェア146内のデータ構造の一例を示す。この実施例では、システムファイル200は、ヘッダ202とデータ204とを含む。ヘッダ202は、そのシステムファイルに記憶された仮想カートリッジの各々を識別する情報を含んでいてもよい。ヘッダは、仮想カートリッジが書込保護されているかどうか、仮想カートリッジの作成日/修正日などといった情報も含有していてもよい。一例では、ヘッダ202は、各仮想カートリッジを固有に識別し、各仮想カートリッジを、記憶システムに記憶された他の仮想カートリッジから区別する情報を含む。たとえば、この情報は、仮想カートリッジの名前および識別番号(テープがロボット機構によって識別され得るよう、物理的テープ上に通常存在するバーコードに対応)を含んでいてもよい。ヘッダ202はまた、各仮想カートリッジの容量、最終修正日といった追加情報も含んでいてもよい。] 図5 [0060] この発明の一実施例によれば、ヘッダ202のサイズは、記憶されるデータのタイプ(たとえば、1つ以上のホストコンピュータシステムからのデータバックアップを表わす仮想カートリッジ)と、システムが追跡可能なそのようなデータ(たとえば仮想カートリッジ)の明確なセットの数とを反映させるよう、最適化されてもよい。たとえば、通常テープ記憶システムにバックアップされるデータは、典型的には、多数のシステムファイルおよびユーザファイルを表わすより大きなデータセットによって特徴付けられる。データセットが非常に大きいため、追跡されるべき個別のデータファイルの数はそれに応じて小さい。したがって、一実施例では、ヘッダ202のサイズは、データをたくさん記憶しすぎて十分に追跡できないこと(すなわち、ヘッダが大きすぎること)と十分な数のカートリッジ識別子を記憶する空間がないこと(すなわち、ヘッダが小さすぎること)との折り合いに基づいて、選択されてもよい。例示的な一実施例では、ヘッダ202は、システムファイル200の最初の32MBを利用する。しかしながら、ヘッダ202がシステム要求および特性に基づいて異なるサイズを有してもよいこと、および、システム要求および容量に依存して、ヘッダ202について異なるサイズを選択してもよいことが、認識されるべきである。] [0061] バックアップ/復元アプリケーションの観点からは、仮想カートリッジが、すべて同じ属性および特徴を有する物理的テープカートリッジとして見える、ということが認識されるべきである。すなわち、バックアップ復元アプリケーションには、仮想カートリッジは順次書込まれたテープのように見える。しかしながら、好ましい一実施例では、仮想カートリッジに記憶されたデータは、バックアップ記憶媒体126上に順次フォーマットで記憶されていない。むしろ、仮想カートリッジに書込まれているかのように見えるデータは、実際には、ランダムにアクセス可能なディスクフォーマットのデータとして、記憶システムのファイルに記憶されている。バックアップ/復元アプリケーションがカートリッジフォーマットのデータの読出および書込ができるよう、記憶されたデータを仮想カートリッジにリンクするためにメタデータが使用される。] [0062] このため、好ましい一実施例の概観では、ユーザデータおよび/またはシステムデータ(ここに「ファイルデータ」と呼ぶ)が、ホストコンピュータ120から記憶システム170によって受信され、バックアップ記憶媒体126を構成するディスクアレイ上に記憶される。記憶システムのソフトウェア150(図4参照)および/またはハードウェアは、以下により詳細に説明するように、このファイルデータをシステムファイルの形式でバックアップ記憶媒体126に書込む。バックアップされたユーザファイルおよび/またはシステムファイルの属性を追跡するために、データファイルが記憶システムコントローラによってバックアップされるにつれてメタデータが抽出される。たとえば、各ファイルについてのそのようなメタデータは、ファイル名、ファイルの作成日または最終修正日、ファイルに関する暗号化情報、および他の情報を含んでいてもよい。加えて、各ファイルについて、ファイルを仮想カートリッジにリンクするメタデータが、記憶システムによって作成されてもよい。そのようなメタデータを用いて、ソフトウェアはホストコンピュータにテープカートリッジのエミュレーションを提供する。しかしながら、以下に説明するように、ファイルデータは実際にはテープフォーマットで記憶されておらず、むしろシステムファイルに記憶されている。データを順次カートリッジフォーマットではなくシステムファイルに記憶させることは、ある特定のファイルを見つけるために順次データを走査する必要なく、個々のファイルへの迅速で効率的でランダムなアクセスを可能にする点で、有利であり得る。] 図4 [0063] 上述のように、一実施例によれば、ファイルデータ(すなわちユーザデータおよび/またはシステムデータ)はシステムファイルとしてバックアップ記憶媒体に記憶され、各システムファイルはヘッダとデータとを含み、データは実ユーザファイルおよび/またはシステムファイルである。各システムファイル200のヘッダ202は、ユーザファイルおよび/またはシステムファイルを仮想カートリッジにリンクするメタデータを含有するテープディレクトリ206を含む。ここに使用されるような「メタデータ」という用語は、ユーザファイルデータまたはシステムファイルデータではなく、実ユーザデータおよび/またはシステムデータの属性を記述するデータを指す。一例によれば、テープディレクトリは、仮想カートリッジ上のデータのレイアウトを、バイトレベルに至るまで規定してもよい。] [0064] 一実施例では、テープディレクトリ206は、図6に示すようなテーブル構造を有する。テーブルは、記憶された情報のタイプ(たとえばデータ、ファイルマーカ(FM)など)に関する列220と、使用されたディスクブロックのバイト単位のサイズに関する列222と、ファイルデータを記憶するディスクブロックの数を数える列224とを含む。このため、テープディレクトリは、コントローラが、バックアップ記憶媒体126に記憶されたどのデータファイルにも(順次とは対照的に)ランダムにアクセスできるようにする。たとえば、図6を参照して、データファイル226は、仮想テープ上で迅速に位置を特定され得る。なぜなら、テープディレクトリは、ファイル226のデータがシステムファイル200の最初から1ブロックで始まることを示しているためである。この1ブロックにはサイズがない。なぜなら、それはファイルマーカ(FM)に対応しているためである。ファイルマーカはシステムファイルには記憶されていない。すなわち、ファイルマーカはゼロデータに対応している。ファイルマーカは従来のテープによって使用されるため、テープディレクトリはファイルマーカを含んでおり、バックアップ/復元アプリケーションはこのため、データファイルとともにファイルマーカを書込み、仮想カートリッジを閲覧した場合にファイルマーカを見ることを期待する。したがって、ファイルマーカはテープディレクトリにおいて追跡されている。しかしながら、ファイルマーカはどのデータも表わしておらず、したがってシステムファイルのデータ区分には記憶されていない。このため、ファイル226のデータは、矢印205(図5参照)で示すシステムファイルのデータ区分の最初で始まり、長さが1024バイトである(すなわち、サイズが1024バイトの1つのディスクブロック)。データの量、すなわちデータファイルのサイズに依存して、他のファイルデータが1024バイト以外のブロックサイズで記憶されてもよい、ということが認識されるべきである。たとえば、より大きなデータファイルは、効率のため、より大きなデータブロックサイズを用いて記憶されてもよい。] 図5 図6 [0065] 一例では、テープディレクトリは、記憶システム上にバックアップされた各データファイルに関連付けられた「ファイル記述子」に含まれていてもよい。ファイル記述子は、記憶システム上に記憶されたデータファイル204に関するメタデータを含む。一実施例では、ファイル記述子は、多くのUNIX(登録商標)ベースのシステムが使用するテープアーカイブ(tar)フォーマットといった標準化フォーマットに従って実現されてもよい。各ファイル記述子は、対応するユーザファイルの名前、ユーザファイルが作成/修正された日付、ユーザファイルのサイズ、ユーザファイルに対するアクセス制約などの情報を含んでいてもよい。ファイル記述子に記憶された追加情報は、データのコピー元であるディレクトリ構造を記述する情報をさらに含んでいてもよい。このため、以下により詳細に説明するように、ファイル記述子は、対応するデータファイルについての検索可能なメタデータを含んでいてもよい。] [0066] バックアップ/復元アプリケーションの観点からは、どの仮想カートリッジも、複数のデータファイルと対応するファイル記述子とを含んでいてもよい。記憶システムソフトウェアの観点からは、データファイルは、たとえばある特定のバックアップ作業にリンクされ得るシステムファイルに記憶される。たとえば、ある特定の時間に1つのホストコンピュータによって実行されたバックアップが、1つ以上の仮想カートリッジに対応し得る1つのシステムファイルを生成してもよい。仮想カートリッジはこのため、どのようなサイズであってもよく、より多くのユーザファイルが仮想カートリッジ上に記憶されるにつれて動的に成長し得る。] [0067] 図2を再度参照して、上述のように、記憶システム170は、合成フルバックアップソフトウェアアプリケーション240を含んでいてもよい。一実施例では、ホストコンピュータ120は、エミュレートされた媒体134上にデータをバックアップして、1つ以上の仮想カートリッジを形成する。いくつかのコンピューティング環境では、「フルバックアップ」、すなわち、ネットワークの一次記憶システム(図1参照)上に記憶された全データのバックアップコピーが、周期的に(たとえば毎週)遂行されてもよい。コピーされるべきデータが大量なため、この処理は通常、非常に長い。したがって、多くのコンピューティング環境では、連続するフルバックアップ間で、増分バックアップと呼ばれる追加のバックアップが、たとえば毎日行なわれてもよい。増分バックアップとは、(増分であれフルであれ)最後のバックアップが実行されてから変更されたデータのみをバックアップする処理である。典型的には、この変更されたデータは、往々にしてファイルのデータのほとんどが変更されなかったとしても、ファイルベースでバックアップされる。このため、増分バックアップは通常、フルバックアップよりもはるかに小さく、したがってはるかに迅速に遂行される。多くの実施例は通常、フルバックアップを週に1回行ない、増分バックアップをその週の間毎日行なうが、そのような時間枠を使用することは要求されていない、ということが認識されるべきである。したがって、或る環境は増分バックアップを日に数回必要とするかもしれない。この発明の原理は、フルバックアップ(およびオプションで増分バックアップ)を用いるあらゆる環境に、それらがどれくらいの頻度で行なわれるかにかかわらず、当てはまる。フルバックアップおよび/または増分バックアップを頻繁に実行することは、大量の冗長データが記憶システム170に記憶されることをもたらす場合がある。この冗長データに関連する負担を緩和するために、記憶システム170は、以下にさらに説明するデータ重複排除システムおよび処理を利用してもよい。] 図1 図2 [0068] フルバックアップ手順の最中、ホストコンピュータは、複数のデータファイルを備えるバックアップデータを含む1つ以上の仮想カートリッジを作成してもよい。明確性のため、以下の説明は、フルバックアップが1つの仮想カートリッジのみを生成すると仮定する。しかしながら、フルバックアップは2つ以上の仮想カートリッジを生成し得ること、およびこの発明の原理は任意の数の仮想カートリッジに当てはまることが、認識されるべきである。] [0069] 一実施例によれば、1つの既存のフルバックアップデータセットと1つ以上の増分バックアップデータセットとから合成フルバックアップデータセットを作成するための方法が提供される。この方法は、周期的な(たとえば週ごとの)フルバックアップを行なう必要性をなくすことができ、それによりユーザのかなりの時間およびネットワーク資源を節約する。さらに、当業者には公知であるように、1つのフルバックアップおよび1つ以上の増分バックアップに基づいてデータを復元することは、時間がかかる処理であり得る。なぜなら、たとえば、あるファイルの最新バージョンがある増分バックアップに存在する場合、バックアップ/復元アプリケーションは通常、最後のフルバックアップに基づいてそのファイルを復元し、次に増分バックアップから変更を適用する。したがって、合成フルバックアップを提供することは、1つのフルバックアップおよび1つ以上の増分バックアップから複数回の復元を行なう必要なく、バックアップ復元アプリケーションが合成フルバックアップのみに基づいてより迅速にデータファイルを復元できるようにする、という追加の利点を有し得る。ここに使用されるような「最新バージョン」という表現は一般に、データファイルの最新コピー(すなわち、データファイルが保存された最新時間)を、そのファイルが新しいバージョン番号を有しているか否かにかかわらず、指す。「バージョン」という用語は、ここでは一般に、何らかの方法で修正され、または多数回保存されたかもしれない同じファイルのコピーを指すために使用される。] [0070] 図7を参照すると、合成フルバックアップ手順の概略図が示されている。ホストコンピュータ120は、第1の時点、たとえば週末にフルバックアップ230を実行してもよい。ホストコンピュータ120は次に、その後の増分バックアップ232a、232b、232c、232d、232eを、たとえばその週の間毎日実行してもよい。記憶システム170は、次に、以下に説明するように、合成フルバックアップデータセット234を作成してもよい。] 図7 [0071] 一実施例によれば、記憶システム170は、ここに合成フルバックアップアプリケーション240(図3参照)と呼ばれるソフトウェアアプリケーションを含んでいてもよい。合成フルバックアップアプリケーション240は、記憶システムコントローラ122(図2参照)上で実行されてもよく、またはホストコンピュータ120上で実行されてもよい。合成フルバックアップアプリケーションは、合成フルバックアップデータセット234を作成するために必要なソフトウェアコマンドおよびインターフェイスを含む。一例では、合成フルバックアップアプリケーションは、合成フルバックアップデータセット234を含む新しい仮想カートリッジを生成するために、フルバックアップデータセット230および増分バックアップデータセット232の各々のメタデータ表現の論理的併合を行なってもよい。] 図2 図3 [0072] たとえば、図8を参照して、既存のフルバックアップデータセットは、ユーザファイルF1、F2、F3、およびF4を含んでいてもよい。第1の増分バックアップデータセット232aは、F2の修正バージョンであるユーザファイルF2′と、F3の修正バージョンであるF3′とを含んでいてもよい。第2の増分バックアップデータセット232bは、F1の修正バージョンであるユーザファイルF1′と、F2のさらに修正されたバージョンであるF2″と、新しいユーザファイルF5とを含んでいてもよい。したがって、フルバックアップデータセット230と2つの増分データセット232aおよび232bとの論理的併合から形成された合成フルバックアップデータセット234は、各ユーザファイルF1、F2、F3、F4、およびF5の最終バージョンを含む。図8に示すように、合成フルバックアップデータセットはしたがって、ユーザファイルF1′、F2″、F3′、F4、およびF5を含む。] 図8 [0073] 図3および図4を再度参照して、ファイルシステムソフトウェア146は、エミュレートされた媒体134上に記憶された各ユーザファイルに関するメタデータを記憶する論理メタデータキャッシュ242を作成してもよい。論理メタデータキャッシュは物理的データキャッシュである必要はないが、その代わり、記憶媒体126上に記憶されたデータの検索可能な集合体であり得る、ということが認識されるべきである。別の例では、論理メタデータキャッシュ242は、データベースとして実現可能である。メタデータがデータベースに記憶されている場合、従来のデータベースコマンド(たとえばSQLコマンド)を用いて、合成フルバックアップデータセットを作成するためにフルバックアップセットと1つ以上の増分バックアップデータセットとの論理的併合を行なうことができる。] 図3 図4 [0074] 別の実施例では、メタデータの一部がデータベースに記憶され、別の一部が記憶システムファイルに記憶されてもよい。たとえば、バックアップデータセット名とそれが備えるデータオブジェクトとを含むバックアップデータセットメタデータが、従来のデータベースに含まれていてもよく、一方、たとえばデータオブジェクトがデータファイル、データファイルサイズ、機密保護情報、および一次ストレージにおける位置である場合などにおいてデータオブジェクトに特有のメタデータが、記憶システムファイルに含まれていてもよい。このようにメタデータを記憶することは、問合せがしばしばあったデータを従来のデータベースから柔軟に取出すことを可能にし、また、それほど頻繁に問合されなかったデータを記憶システムファイルにより迅速に記憶させることによってシステム拡張性を促進する。] [0075] 上述のように、エミュレートされた媒体134上に記憶された各データファイルは、バックアップ記憶媒体126上のファイルの位置を含む、データファイルに関するメタデータを含むファイル記述子を含んでいてもよい。一実施例では、ホストコンピュータ120上で実行中のバックアップ/復元アプリケーションは、エミュレートされた媒体134上にデータをストリーミングテープフォーマットで記憶させる。このテープフォーマットを表わすデータ構造250の一例を、図9に示す。上述のように、システムファイルデータ構造はヘッダを含み、それは、データファイル用のファイル記述子、ファイルの作成日および/または修正日、機密保護情報、ファイルの入手元であるホストシステムのディレクトリ構造、およびファイルを仮想カートリッジにリンクする他の情報といった、データファイルについての情報を含んでいてもよい。これらのヘッダは、ホストコンピュータ、一次記憶システムなどからバックアップ(コピー)された実ユーザファイルおよびシステムファイルであるデータ254に関連付けられている。システムファイルデータ構造はまた、次のヘッダをブロック境界に適切に整列させ得るパッド256をオプションで含んでいてもよい。] 図9 [0076] 図9に示すように、一例では、ヘッダデータは、迅速な検索と、さもなければ順次であるテープデータフォーマットへのランダムアクセスとを可能にするよう、論理メタデータキャッシュ242に位置する。記憶システムコントローラ122に対してファイルシステムソフトウェア146を使用して実現された、論理メタデータキャッシュの使用は、エミュレートされた媒体134上に記憶された線形で順次のテープデータフォーマットを、バックアップ記憶媒体126を構成する物理的ディスク上に記憶されたランダムアクセスデータフォーマットに変換することを可能にする。論理メタデータキャッシュ242は、データファイル用のファイル記述子を含むヘッダ252と、以下により詳細に説明するようにデータファイルへのアクセスを制御するために使用され得る機密保護情報と、仮想カートリッジおよびバックアップ記憶媒体126上のデータファイルの実際の位置へのポインタ257とを記憶している。一実施例では、論理メタデータキャッシュは、フルバックアップデータセット230および各増分データセット232においてバックアップされた全データファイルに関するデータを記憶する。] 図9 [0077] 一実施例によれば、合成フルバックアップアプリケーションソフトウェア240は、論理メタデータキャッシュに記憶された情報を用いて、合成フルバックアップデータセットを作成する。この合成フルバックアップデータセットは次に、合成フルバックアップアプリケーション240によって作成された合成仮想カートリッジにリンクされる。バックアップ/復元アプリケーションには、合成フルバックアップデータセットはこの合成仮想カートリッジ上に記憶されているかのように見える。上述のように、合成フルバックアップデータセットは、既存のフルバックアップデータセットと増分バックアップデータセットとの論理的併合を行なうことによって作成され得る。この論理的併合は、既存のフルバックアップデータセットおよび増分バックアップデータセットの各々に含まれる各データファイルを比較すること、および図8を参照して上述したように、各ユーザファイルの最新バージョンの複合体を作成することを含んでいてもよい。] 図8 [0078] 一実施例によれば、合成仮想カートリッジ260は、図10に示すように、他の仮想カートリッジ、具体的には既存のフルバックアップデータセットおよび増分バックアップデータセットを含む仮想カートリッジ上のデータファイルの位置を指すポインタを含む。図8に関して上に挙げた例を考慮すると、合成仮想カートリッジ260は、(既存のフルバックアップデータセットがF4の最終バージョンを含んでいたため)ユーザファイルF4の、仮想カートリッジ262上の既存のフルバックアップデータセットにおける位置、および、たとえばユーザファイルF3′の、仮想カートリッジ264上の増分データセット232aにおける位置を(矢印268で示すように)指す、ポインタ266を含む。] 図10 図8 [0079] 合成仮想カートリッジは、ポインタ266が指すデータを含む全仮想カートリッジの識別番号(およびオプションで名前)を含むリスト270も含む。この従属的なカートリッジリスト270は、実データの記憶場所を追跡し続けるといった参照のために、また従属的な仮想カートリッジが消去されないようにするために、重要であり得る。この実施例では、合成フルバックアップデータセットは実ユーザファイルを含んでおらず、むしろ、バックアップ記憶媒体126上でのユーザファイルの位置を示す1組のポインタを含んでいる。したがって、(他の仮想カートリッジ上に記憶された)実ユーザファイルが削除されないようにすることが望ましい場合がある。これは、データを含む仮想カートリッジの記録(従属的カートリッジリスト270)をつけて、それらの仮想カートリッジの各々が上書きされたり削除されたりしないよう保護することによって、一部遂行され得る。合成仮想カートリッジはまた、合成仮想カートリッジのサイズ、バックアップ記憶媒体126上のその位置といったカートリッジデータ272を含んでいてもよい。加えて、合成仮想カートリッジは、識別番号および/または名前274を有していてもよい。] [0080] 別の実施例によれば、合成仮想カートリッジは、ポインタと記憶された実ユーザファイルとの組合せを含んでいてもよい。図11を参照して、一例では、合成仮想カートリッジは、仮想カートリッジ262上の既存のフルバックアップデータセット230におけるデータファイル(図9を参照して上述したように、最終バージョン)の位置を指すポインタ266を含む。合成仮想カートリッジはまた、矢印280によって示すように、増分データセット232からコピーされた実データファイルを含むデータ278を含んでいてもよい。このように、合成フルバックアップデータセット276の作成後に増分バックアップデータセットを削除することが可能であり、それにより記憶空間を節約する。合成仮想カートリッジは、全ユーザファイルのコピーというよりもむしろ、すべてのまたは一部のポインタを含むため、比較的小さい。] 図11 図9 [0081] 合成フルバックアップはポインタと記憶されたファイルデータとの任意の組合せを含んでいてもよく、上に挙げた例に限定されない、ということが認識されるべきである。たとえば、合成フルバックアップは、或る増分バックアップおよび/またはフルバックアップ上に記憶されたいくつかのファイルについてのデータファイルへのポインタを含んでいてもよく、他の既存のフルバックアップおよび/または増分バックアップからコピーされた、記憶されたファイルデータを含んでいてもよい。さらに、これに代えて、ポインタを含まないものの、適切なフルバックアップおよび/または増分バックアップからコピーされた実ファイルデータの最終バージョンを含む、以前のフルバックアップおよび関連する増分バックアップに基づいて、合成フルバックアップが作成されてもよい。] [0082] 一実施例では、合成フルバックアップアプリケーションソフトウェアは、各データファイルの最終バージョンがどこに位置するかを判断するために、既存のフルバックアップデータセットおよび増分バックアップデータセットの各々について、ユーザおよびシステムファイルメタデータを比較できるようにする差分アルゴリズムを含んでいてもよい。たとえば、差分アルゴリズムは、異なるバックアップセットにおける同じデータファイルの異なるバージョン間で、作成日および/または修正日、バージョン番号(利用可能な場合)などを比較し、データファイルの最新バージョンを選択するために使用可能である。しかしながら、ユーザは、ユーザファイルを開き、そのファイル内のデータを実際に変更することなくそのファイルを保存する(それによりその修正日を変更する)ことが、しばしばある。したがって、システムは、システムファイルまたはユーザファイル内のデータを分析して、データが実際に変更されたかどうかを判断し得る、より進んだ差分アルゴリズムを実現してもよい。そのような差分アルゴリズムの変形、および他のタイプの比較アルゴリズムは、当業者には公知であり得る。加えて、上述のように、メタデータがデータベースフォーマットで記憶されている場合、SQLコマンドなどのデータベースコマンドも、論理的併合を行なうために使用可能である。この発明は、合成フルバックアップデータセットを適正に作成するよう、各ユーザファイルの最新または最後のバージョンが、比較されたすべての既存のバックアップセットから選択されることを確実にするために、そのようなアルゴリズムのどれを適用してもよい。] [0083] 当業者には理解されるはずであるように、合成フルバックアップアプリケーションは、ホストコンピュータが物理的フルバックアップを実行することを必要とせずに、フルバックアップデータセットが作成され、利用可能となることを可能にする。これは、データをバックアップ記憶システムに転送するプロセッサオーバーヘッドをホストコンピュータに課すことを回避するだけでなく、合成フルバックアップアプリケーションが記憶システム上で実行される実施例では、それはネットワーク帯域幅の利用を著しく減少させる。図7に示すように、第1の合成フルバックアップデータセット234とその後の増分バックアップデータセット236とを用いて、さらに別の合成フルバックアップデータセットが作成されてもよい。これは、頻繁に修正されないファイルまたはオブジェクトは頻繁にコピーされないという点で、著しい時間的利点を提供し得る。代わりに、合成フルバックアップデータセットは、1回しかコピーされなかったファイルへのポインタを保持してもよい。] 図7 [0084] この発明に従ったいくつかの局面は、データオブジェクトから冗長データを除去する拡張可能な重複排除システムに向けられている。たとえば、いくつかの実施例によれば、重複排除システムは、データに含まれる予め処理されたメタデータを用いてデータ重複排除を管理するよう構成される。より特定的には、実施例は、重複排除されるべきデータ内の特定のメタデータ値の有無に基づいて、重複排除ドメインにデータを誘導してもよい。これらの重複排除ドメインの各々は、特定のタイプのデータを効率的に重複排除するよう調整された特定の重複排除手法を採用してもよい。] [0085] たとえば、図14は、拡張可能な重複排除サービスを提供するよう特別に構成された重複排除誘導子1400のブロック図を表わす。重複排除誘導子1400は、さまざまなコンピュータシステム上で、ソフトウェア、ハードウェア、またはそれらの組合せとして実現されてもよい。たとえば、一実施例によれば、重複排除誘導子1400は、図3に関して上述した記憶システムコントローラ122の一部として実現される。図14に示す重複排除誘導子1400の特定の構成は、例示のためにのみ使用され、限定的であるよう意図されてはない。なぜなら、この発明の実施例は、この発明の範囲から逸脱することなく、さまざまな構成で設計され得るためである。ここに説明される例のいくつかは単一の重複排除誘導子1400を有する実施例に焦点を当てているが、他の実施例は、この発明の範囲から逸脱することなく、2つ以上の重複排除誘導子を含んでいてもよい。] 図14 図3 [0086] 図14を参照して、重複排除誘導子1400は、データインターフェイス1402と、誘導エンジン1404と、重複排除ドメインデータベース1406と、重複排除ドメイン1408、1410および1412と、重複排除データベースインターフェイス1414とを含む。図示された例では、データインターフェイス1402は、1つ以上のデータ源と情報を交換する、たとえば供給および受信するよう構成された、実行可能なコード、データ、データ構造またはオブジェクトなどの機能を含む。また、図示された例では、データインターフェイス1402は、誘導エンジン1404と双方向に通信可能である。] 図14 [0087] 図示されているように、誘導エンジン1404は、データインターフェイス1402、重複排除ドメインデータベース1406、ならびに重複排除ドメイン1408、1410および1412と、さまざまな情報を交換可能である。重複排除ドメインデータベース1406は次に、誘導エンジン1404および重複排除データベースインターフェイス1414の双方と、データを通信してもよい。重複排除データベースインターフェイス1414は、さまざまな外部実体と情報を交換するよう構成された機能を有する。これらの外部実体は、とりわけ、ユーザおよび/またはシステムを含んでいてもよい。図示された例では、重複排除データベースインターフェイス1414はまた、重複排除ドメインデータベース1406と情報を交換可能である。重複排除ドメイン1408、1410および1412の各々は、誘導エンジン1404およびさまざまな外部実体の双方と情報を交換するよう構成された機能を含む。たとえば、一実施例では、重複排除ドメイン1408、1410および1412は、図3に関して説明したバックアップ記憶媒体126といったデータ記憶媒体と、情報を交換可能である。] 図3 [0088] 情報は、任意の手法を用いて、ここに説明された要素、構成要素およびサブシステム間を流れてもよい。そのような手法は、たとえば、TCP/IPなどの標準プロトコルを用いてネットワークを介して情報を渡すこと、メモリのモジュール間で情報を渡すこと、およびファイル、データベース、または何らかの他の不揮発性記憶装置に書込むことによって情報を渡すことを含む。加えて、情報のコピーの代わりに、またはそれに加えて、情報へのポインタまたは他の参照が送信および受信されてもよい。逆に、情報へのポインタまたは他の参照に代えて、またはそれに加えて、情報が交換されてもよい。この発明の範囲から逸脱することなく、情報を通信するための他の手法およびプロトコルが使用されてもよい。] [0089] 図14に示す例では、重複排除ドメインデータベース1406は、1つ以上の重複排除ドメインの属性を記述する情報を記憶し、取出すよう構成された機能を含む。この情報の例は、各重複排除ドメインについて、その重複排除ドメインに属する、または割当てられるコンピューティング資源の量、その重複排除ドメインによって使用されるある特定の重複排除方法、およびその重複排除ドメインに関連付けられた1つ以上のデータオブジェクト特性を含んでいてもよい。重複排除ドメインデータベース1406はまた、たとえばハッシュテーブルといった重複排除ドメインによって使用される重複排除方法に関連付けられたアーチファクトを保持してもよい。] 図14 [0090] 重複排除ドメインデータベース1406は、フラットファイル、インデックスファイル、階層型データベース、リレーショナルデータベース、またはオブジェクト指向データベースを含む、コンピュータ読取可能媒体上に情報を記憶可能な任意の論理的構成の形式を取っていてもよい。データは、固有キー関係および外部キー関係ならびにインデックスを用いてモデル化されてもよい。固有キー関係および外部キー関係ならびにインデックスは、データ完全性とデータ交換性能の双方を確実にするために、さまざまなフィールドおよびテーブル間に確立されてもよい。] [0091] 図示された例では、データインターフェイス1402は、さまざまな形式およびフォーマットの情報をさまざまなデータ源と交換するよう構成された機能を含む。これらのデータ源は、図1に関して上述した一次記憶装置106といった、重複排除処理を受ける情報の提供元を含んでいてもよい。データインターフェイス1402は、データフォーマットの中でもとりわけ、データの離散ブロック、連続したデータストリーム、および複数の記憶位置から多重化されたデータストリームを受信可能である。加えて、データインターフェイス1402はデータを、インラインで、すなわち重複排除され記憶されるべきデータを、データインターフェイス1402を含むデータ記憶システムが受信している間に、受信可能であり、またはオフラインで、すなわち重複排除されるべきデータをデータ記憶装置が既に記憶した後で、受信可能である。] 図1 [0092] 図示された例では、重複排除ドメイン1408、1410および1412は各々、1つ以上の個々の重複排除ドメインを含む。重複排除ドメインは、データオブジェクトに対して重複排除処理を行なうよう構成された機能を有するソフトウェアおよび/またはハードウェアを含んでいてもよい。各重複排除ドメインは、専用のデータストレージを含んでいてもよい。図示された例では、各重複排除ドメインは、いくつかのデータオブジェクトに共通の1つ以上の特性に関連付けられ得る。加えて、この例では、各重複排除ドメインは、ある特定の重複排除方法を採用可能である。これらの特色により、個々の重複排除ドメインは、関連するデータオブジェクトにとって効果の高い重複排除環境を提供できるようになる。] [0093] たとえば、一実施例によれば、重複排除ドメイン1408、1410および1412は各々、以下に説明する処理1200といった内容認識重複排除処理を採用する。一方、他の実施例では、重複排除ドメイン1408がハッシュ指紋処理を利用し、重複排除ドメイン1410がパターン認識処理を使用し、1412が処理1200を採用してもよい。このように、実施例は、ある特定の重複排除方法、または重複排除方法の構成に限定されない。] [0094] さまざまな実施例では、誘導エンジン1404は、データオブジェクトを、そのデータオブジェクトの1つ以上の特性に関連付けられた重複排除ドメインに誘導するよう構成された機能を含む。一実施例によれば、これらの特性は、データオブジェクトに関連付けられたメタデータを含む。図示された実施例では、誘導エンジン1404は、データインターフェイス1402からデータオブジェクトを受信可能である。誘導エンジン1404は、重複排除ドメイン1408、1410および1412のうちのどれが、受信されたデータオブジェクトを重複排除するのに好適であるかを選択可能である。図示されているように、誘導エンジン1404はまた、データオブジェクトを選択された重複排除ドメインに誘導可能である。誘導エンジン1404はまた、重複排除ドメイン1408、1410および1412によって行なわれる重複排除活動の結果を評価し、この評価に基づいて誘導エンジンを評価して、いくつかの重複排除ドメインにまたがる冗長データを単一の重複排除ドメインに統合するよう構成された機能を有しており、それにより追加のコンピューティング資源を節約する。] [0095] さまざまな実施例では、誘導エンジン1404は、離散データブロック、データストリーム、および多重化データストリームを含むさまざまな形式およびフォーマットで、データをデータインターフェイス1402から受信するよう構成された機能を含む。これらの実施例では、誘導エンジン1404は、予め処理されたメタデータを受信データから抽出可能である。このメタデータは、論理メタデータキャッシュに関して上述したタイプの情報を含んでいてもよく、このため、いくつかの実施例では、メタデータの中でもとりわけ、バックアップポリシー名、データ源のタイプ、データ源の名前、バックアップアプリケーション名、オペレーションシステムのタイプ、データタイプ、バックアップタイプ、ファイル名、ディレクトリ構造、ならびに、日付および時間といった時系列情報を含んでいてもよい。] [0096] さらに、いくつかの実施例では、誘導エンジン1404は、抽出されたメタデータに基づいて、データストリームまたは多重化データストリーム内の整列点を識別するよう構成された機能を有する。これらの実施例では、誘導エンジン1404は、データオブジェクトを作成するために、これらの整列点に沿ってデータストリームまたは多重化データストリームを区分可能である。また、いくつかの実施例では、誘導エンジン1404は、メタデータをデータオブジェクトに関連付けることができる。この関連付けられたメタデータは、とりわけ、データオブジェクトを作成するために使用されるメタデータを含んでいてもよい。] [0097] たとえば、一実施例によれば、誘導エンジン1404は、データオブジェクトがある特定のサーバのその後のバックアップであることに基づいて、データストリームをデータオブジェクトに整列させることができる。同様に、別の実施例では、誘導エンジン1404は、同じファイル名およびディレクトリ位置を有するファイルを含むデータオブジェクトを整列させることができる。さらに別の実施例では、誘導エンジン1404は、データオブジェクトを作成し、データオブジェクトを作成するためにバックアップ/復元プログラムによって実行されたポリシーに基づいて、または、たとえばオラクル(Oracle)データベースによって作成されたデータといった、どのタイプのデータがデータオブジェクトに含まれているかに基づいて、メタデータを関連付けることができる。] [0098] 一実施例によれば、誘導エンジン1404は、データオブジェクトに関連付けられたメタデータを評価することによってデータオブジェクトを誘導するよう構成された機能を有する。この実施例では、誘導エンジン1404は、データオブジェクトに関連付けられたメタデータを、個々の重複排除ドメインに関連付けられたデータオブジェクト特性と比較することができる。十分な品質の一致が見つかった場合、誘導エンジン1404は、さらなる処理のためにデータオブジェクトを一致する重複排除ドメインに転送可能である。一実施例によれば、誘導エンジン1404は、データオブジェクトのコピーを重複排除ドメインに提供するか、またはポインタといったデータオブジェクトへの参照を重複排除ドメインに提供することによって、データオブジェクトを転送可能である。いくつかの実施例によれば、データオブジェクトに関連付けられたメタデータ、および重複排除ドメインに関連付けられたデータオブジェクト特性はともに、データオブジェクトの内容に関する情報である。] [0099] たとえば、一実施例では、データオブジェクトに関連付けられたメタデータ、および重複排除ドメインに関連付けられたデータオブジェクト特性は、たとえばマイクロソフトアウトルック(MICROSOFT OUTLOOK)といった、データオブジェクトを作成したソフトウェアアプリケーションである。この例では、マイクロソフトアウトルックによって作成されたデータオブジェクトに遭遇すると、誘導エンジン1404は、それらのデータオブジェクトを、マイクロソフトアウトルックデータオブジェクトに関連付けられた重複排除ドメインに誘導できる。他の実施例では、メタデータおよびデータオブジェクト特性は、他のタイプの情報であってもよい。] [0100] いくつかの実施例によれば、誘導エンジン1404は、複数の重複排除ドメインにわたって冗長データをさらに統合するよう構成された機能を含む。いくつかの実施例では、誘導エンジンは、複数の重複排除ドメインにまたがる冗長データを判断するために、重複排除処理の結果と重複排除処理に関連付けられたアーチファクトとを評価することができる。たとえば、一実施例では、誘導エンジン1404は、複数の重複排除ドメインが共有しているかもしれないハッシュ指紋を求めて、ハッシュ指紋法を採用している複数の重複排除ドメインに関連付けられたハッシュテーブルを周期的に「スクラビング」する、または検索することができる。この実施例では、誘導エンジン1404は、異なる重複排除ドメインによって処理されたもののこれらの共通の指紋を有しているデータのストレージを、冗長データのコピーを冗長データの単一のコピーへの参照と置き換えるように重複排除ドメインのうちの1つ以上を誘導することによって、統合することができる。] [0101] 他の実施例では、誘導エンジン1404は、新しい重複排除ドメインを作成し、または既存の重複排除ドメインの構成を修正して、上述のスクラビング処理によって見つかった冗長データに関するデータの今後の処理を統合することができる。たとえば、一実施例では、誘導エンジン1404は、特定の重複排除ドメインに関連付けられたデータオブジェクト特性を変更することにより、1つの重複排除ドメインからの冗長データに関するデータを含むデータオブジェクトの今後の処理を、別のものにシフトすることができる。] [0102] たとえば、一実施例では、誘導エンジン1404は、スクラビングを通して見つかった冗長データを含むデータオブジェクトに共通するメタデータを見つけるよう構成された機能を含む。さらに、この例では、誘導エンジンは、共通のメタデータに基づいて、共通のメタデータと一致する1つ以上のデータオブジェクト特性を判断することができる。誘導エンジン1404はまた、重複排除ドメインデータベース1406に関連性を記憶させることにより、これらの新しく判断されたデータオブジェクト特性を、新しいまたは既存の重複排除ドメイン、すなわち今後の処理が統合される重複排除ドメインに関連付けることができる。逆に、誘導エンジン1404は、重複排除ドメインデータベース1406と相互作用して、既存の重複排除ドメインから1つ以上のデータオブジェクト特性を分離し、これらの重複排除ドメインが将来、冗長データに関するデータを含むデータオブジェクトを受信しないようにすることができる。このように、誘導エンジン1404は、新しく見つかった共通のメタデータに関連付けられたデータオブジェクトの、新しく判断されたデータオブジェクト特性に関連付けられた重複排除ドメインへの流れを調節することができる。] [0103] いくつかの実施例では、誘導エンジン1404は、データオブジェクトをある特定の重複排除ドメインに誘導する際に追加情報を使用するよう構成された機能を含む。たとえば、一実施例によれば、誘導エンジン1404は、ある特定の重複排除ドメイン専用のストレージが、残りの容量のしきい値レベル未満であることを検出可能である。この場合、誘導エンジン1404は、データオブジェクトを他の重複排除ドメインに誘導でき、または、追加の記憶容量を重複排除ドメインに割当てることができる。別の実施例では、誘導エンジン1404は、データオブジェクトが失効するまで残っている時間量に基づいて、データオブジェクトをある特定の重複排除ドメインに誘導可能である。たとえば、この実施例では、誘導エンジン1404は、残りの寿命が少ないデータオブジェクトを、少ない処理オーバーヘッドで、重複排除ドメインに、そのデータオブジェクトに関するその重複排除ドメインの有効性にかかわらず誘導することができる。なぜなら、そのデータオブジェクトは短時間のうちにストレージから消去されるためである。] [0104] さまざまな実施例によれば、重複排除データベースインターフェイス1414は、さまざまな外部実体と情報を交換するよう構成された機能を有する。図示された実施例によれば、重複排除データベースインターフェイス1414は、重複排除ドメイン1408、1410および1412といった重複排除ドメインをユーザが作成、修正、および削除できるようにするさまざまなユーザインターフェイスメタファを、ユーザに提供できる。より特定的には、新しい重複排除ドメインを作成するためのメタファを表示する際、重複排除データベースインターフェイス1414は、その新しい重複排除ドメインに関連付けられたデータオブジェクトの特性をユーザが特定できるようにするインターフェイス要素を、ユーザに提示できる。加えて、重複排除データベースインターフェイス1414は、その新しい重複排除ドメインによって採用されるべき重複排除方法をユーザが特定できるようにするインターフェイス要素を、ユーザに提供できる。] [0105] 他の実施例では、重複排除データベースインターフェイス1414は、バックアップ/復元プログラムといった外部システムからデータを受信し、受信データに基づいて、外部システムから到来したデータを処理するように重複排除ドメインを自動的に構成するよう構成された機能を有する。たとえば、いくつかの実施例では、重複排除データベースインターフェイス1414は、将来受信される、または現在受信中のデータオブジェクトのタイプにおける共通性を判断して、重複排除効率を高めるように重複排除ドメイン1408、1410および1412を構成することが可能である。一実施例では、重複排除データベースインターフェイス1414は、バックアップ/復元プログラムによって供給されるバックアップポリシーに基づいて、バックアップポリシーの実行の結果受信されるデータオブジェクトの一次記憶位置を判断可能である。この実施例では、重複排除データベースインターフェイス1414は、この一次記憶位置情報に基づいて、重複排除ドメイン1408、1410および1412の構成を記憶可能である。別の実施例では、重複排除データベースインターフェイス1414によって記憶された構成は、データオブジェクトの記憶位置よりもむしろ、データオブジェクトを作成したソフトウェアアプリケーションに基づくことが可能である。他の実施例は、他のタイプのデータを用いて、好適な重複排除ドメイン構造および構成を判断してもよい。] [0106] 上述のように、重複排除誘導子1400は、いくつかの重複排除方法のうちの1つを用いて、データオブジェクトから冗長データを除去してもよい。ある重複排除ドメインによって使用され得る1つの特定の重複排除手法は、内容認識重複排除である。図12は、この発明の一実施例に従った、データオブジェクトからデータを重複排除するための例示的な内容認識処理1200を示す。図13は、データ重複排除とともに使用すると追加の処理効率を生み出す、進化した参照手法を示す。重複排除処理は、単一のバックアップ記憶システムを用いて、または上述のグリッド環境といった分散記憶システム環境内で実現されてもよい。] 図12 [0107] 一般に、処理1200を実行するシステムは、一連のデータオブジェクトに関連付けられたメタデータを抜粋して、たとえば重複データを共有する可能性のあるデータオブジェクトといった、さらなる重複排除処理ステップを受けるそれらのデータオブジェクトを識別してもよい。このシステムは、冗長データの位置を特定するために、追加処理用に識別されたデータオブジェクトを検査してもよい。さらに、このシステムは、冗長データの単一のコピーを指す識別されたデータオブジェクトのコピーを構築し、また、オプションでこれらのコピーの完全性を確認してもよい。冗長データによって占められた記憶容量を取り戻すために、このシステムは、もともと識別されたデータオブジェクトを削除してもよい。重複排除方法および重複排除装置の局面および実施例を、以下により詳細に説明する。] [0108] 図12を引き続き参照して、ステップ1202で、データ重複排除処理1200が始まる。ステップ1204で、システムは、さらなる重複排除処理を受けることになるデータオブジェクトを識別する。一実施例では、このシステムは、冗長データを含む可能性があるデータオブジェクトを識別してもよい。この識別を行なうために、さまざまな方法およびメタデータが採用されてもよい。たとえば、一実施例では、一次ストレージにおけるあるバックアップデータオブジェクトの物理的位置は、それが別のバックアップデータオブジェクトを有するデータを有する可能性があることを示してもよい。より特定的には、同じ一次記憶装置、たとえばある特定のサーバから2つのバックアップデータオブジェクトが生じた場合、これらのデータオブジェクトは、冗長データのコピーを含む可能性があると識別されてもよい。同様に、別の実施例では、2つのデータオブジェクトは、ともにある特定のソフトウェアアプリケーションによって作成された場合、冗長データを有する可能性があると識別されてもよい。さらに別の実施例では、データオブジェクトがフルまたは増分バックアップポリシーの一部として記憶されたかどうかが、冗長データの可能性を示してもよい。重複データを含む可能性があるデータオブジェクトの識別は、CPUサイクルといった乏しいコンピュータ資源が、冗長データの除去から最も利益を得ることになるこれらのデータオブジェクトに集中され得るようにすることによって、処理1200の全体的効率を高める。] 図12 [0109] 別の実施例では、システムは、あるデータオブジェクトを、これらのデータオブジェクトに関連付けられたメタデータに基づいて、さらなる重複排除処理に自動的に含めるよう、またはさらなる重複排除処理から自動的に除外するよう構成されていてもよい。たとえば、システムは、ある特定のソフトウェアアプリケーションによって作成されたデータオブジェクトを重複排除処理に含めるよう構成されていてもよい。同様に、システムは、ある特定のポリシーの一部としてバックアップされたデータオブジェクトを、さらなる重複排除処理に含めるよう構成されていてもよい。逆に、システムは、ある特定のポリシーによってバックアップされた全データオブジェクト、および/または具体的な名前のデータオブジェクトを、さらなる重複排除処理から除外するよう構成されていてもよい。これらの構成の選択肢により、システム挙動は、どのようなクライアント環境の特定の要望にも適合するよう調整され得るようになり、このため、システム効率、性能および拡張性を高める。] [0110] ステップ1206で、処理1200を実行するシステムは、さらなる重複排除処理のために識別されたデータオブジェクトにおいて冗長データの位置を特定する。この分析は、メタデータを用いることによって、および/または識別されたデータオブジェクトの実際の内容を検査することによって遂行されてもよい。一実施例では、同様のメタデータを有するデータオブジェクトは、同じデータを備えると仮定される。たとえば、複数のデータオブジェクトがデータファイルで、双方とも同じ名前、一次ストレージおよび巡回冗長検査(CRC)における物理的位置、重複排除処理中に生成されたハッシュまたは何らかの他のメタデータを共有する場合、これら2つのデータオブジェクトは冗長であるとして記録されてもよい。冗長データを識別するためにメタデータを使用することは、いくつかの利点を提供する。メタデータの使用は効率を高める。なぜなら、データオブジェクト全体というよりもむしろ、データオブジェクトのメタデータのみが処理され得るためである。] [0111] 別の実施例では、データオブジェクト同士は、冗長性を保証するためにビット単位で比較されてから、そのように記録されてもよい。このタイプの比較は、コンピューティング資源をたくさん使うかもしれないが、それは、冗長であると識別されたあらゆるデータが実際に完全に冗長である、という強い保証も提供する。冗長性の判断に対するこのアプローチは、たとえば、金融情報といった、完全性が特に重要であるデータオブジェクトを取扱う際に有用であり得る。] [0112] さらに別の実施例では、データオブジェクトに含まれるデータの一部が分析されて、オブジェクト全体の冗長性を定める。たとえば、あるソフトウェアアプリケーションは、それらが修正するデータオブジェクト内のある位置に、たとえばオブジェクトの最初または最後に、修正されたデータを追いやってもよい。このため、このデータ分散パターンを用いて、システムはその重複排除処理を、静的である可能性がより高いデータオブジェクトの部分に集中させ、こうしてシステム効率を高めてもよい。] [0113] この発明の実施例は、冗長データの位置を特定するために、これらの手法の組合せを採用してもよい。より特定的には、システムは、上述のさらなる重複排除処理のためにデータオブジェクトを識別するために使用されたようなメタデータに基づいて、特定の手法を特定のデータオブジェクトに誘導してもよい。このメタデータは、とりわけ、一次ストレージにおける位置、データオブジェクトがバックアップされるようにしたポリシー、およびデータオブジェクトに関連付けられたソフトウェアアプリケーションを含んでいてもよい。データオブジェクト識別と同様に、重複データの位置を特定する態様に関してシステムを調整する能力は、システム拡張性および性能を高める。] [0114] ステップ1208で、処理1200を実行するシステムは、冗長データを含む以前に識別されたデータオブジェクトの重複排除されたコピーを作成してもよい。これらの重複排除されたコピーには、冗長データがほとんどまたは全くない場合がある。一実施例では、識別されたデータオブジェクトは、たとえば、仮想カートリッジを含んでいてもよい。この場合、システムは、完全に分解されると識別された仮想カートリッジに含まれるデータをすべて含む、1つ以上の重複排除された仮想カートリッジを作成してもよい。上述の合成仮想カートリッジと同様、これらの重複排除された仮想カートリッジは、データオブジェクトおよびデータオブジェクトへのポインタの双方を備えていてもよい。] [0115] これらの重複排除されたデータコピーの作成中、システムは、ある特定のデータオブジェクト内に重複データのコピーを記憶させ、他のデータオブジェクト内のポインタを作成および/または修正して、重複データをそれらのデータオブジェクト内に記憶させてもよい。システムは、重複データおよびポインタを記憶させる際、さまざまな方法論に従ってもよい。一実施例では、重複データは最も古いデータオブジェクトに収容され、重複データの位置を識別するポインタは、重複データを含むより若いデータオブジェクトに記憶される。当該技術分野において逆方向参照と呼ばれるこの手法は、重複排除処理のためにデータオブジェクトを要約するためにハッシュインデックスが構築される場合に一般的である。] [0116] 別の実施例では、重複データは最も若いデータオブジェクトに収容され、重複データの位置を識別するポインタは、重複データを含むより古いデータオブジェクトに記憶される。この手法は順方向参照と呼ばれ得る。順方向参照は、データが最後のバックアップから復元される場合のデータ復元性能を高める。なぜなら、バックアップデータオブジェクトに含まれる全データを分解するために、ポインタの参照解除の減少が必要となるためである。この性能の向上は、一次ストレージからデータを復元させなければならない場合に通常、最新の、すなわち最も若いバックアップが使用されるという事実により、特に有利である。] [0117] 図13A、図13Bおよび図13Cは、上述のような順方向参照および逆方向参照を示す。図13Aは、重複排除処理前のバックアップデータオブジェクト1302および1304を示す。この例示のために、バックアップデータオブジェクト1302はバックアップデータオブジェクト1304よりも前に記憶されたと仮定されたい。バックアップデータオブジェクト1302は、固有データ部分1306と冗長データ部分1310Aとを含む。バックアップデータオブジェクト1304は、固有データ部分1308と冗長データ部分1318Bとを含む。] 図13A 図13B 図13C [0118] 図13Bは、順方向参照方式の下でのデータオブジェクト1302および1304の重複排除されたコピーを示す。2つのうち、より最近に記憶されたデータオブジェクト1304は、冗長データ部分1310Bのコピーを含む。2つのうち、より以前に記憶されたデータオブジェクト1302は、冗長データ部分1310Bを指すポインタ1312を含む。このため、重複排除されたコピーの作成後、より若いデータオブジェクトは冗長データのコピーを含み、より古いデータオブジェクトは、より若いデータオブジェクトの冗長データへのポインタを含む。] 図13B [0119] 図13Cは、逆方向参照方式の下でのデータオブジェクト1302および1304の重複排除されたコピーを示す。2つのうち、より以前に記憶されたデータオブジェクト1302は、冗長データ1310Aのコピーを含む。2つのうち、より最近に記憶されたデータオブジェクト1302は、冗長データ部分1310Aを指すポインタ1312を含む。このため、重複排除されたコピーの作成後、より古いデータオブジェクトは冗長データのコピーを含み、より若いデータオブジェクトは、より古いデータオブジェクトの冗長データへのポインタを含む。] 図13C [0120] ステップ1210で、システムは、データ完全性が保存されたことを確実にするために、重複排除されたコピーを以前に識別されたデータオブジェクトと比較してもよい。この比較は、データオブジェクトポインタの参照解除を必要とする場合があり、また、データオブジェクトに含まれるデータのビット単位の比較を含んでいてもよい。この完全性チェックの実行後、一実施例では、システムは、重複排除されたコピーを識別するポインタとそれらのそれぞれの以前に識別されたデータオブジェクトとを交換して、重複排除されたデータオブジェクトが一次データオブジェクトとなり、以前に識別されたデータオブジェクトが、それを参照するデータオブジェクトの完全性を混乱させることなく削除され得るようにしてもよい。システムはまた、メタデータに他の調節を加えて、それが重複排除されたコピーの特性を正確に反映することを確実にしてもよい。] [0121] ステップ1212で、以前に識別されたデータオブジェクトによって利用された記憶容量が、他のデータオブジェクトによる使用のために取り戻される。一実施例では、これは、以前に識別されたデータオブジェクトを単に削除することによって遂行されてもよい。ステップ1214で、処理1200は終了する。] [0122] 処理1200は、ある好ましい一連の事象を示す。この発明の精神から逸脱することなく、他の動作を加えることが可能であり、または処理1200において動作の順序を変更することができる。一実施例では、処理1200は、バックアップストレージシステムに含まれる各データオブジェクトについて実行されてもよい。別の実施例では、システムは、バックアップ記憶システムにおけるデータオブジェクトのサブセットについて、処理1200を実行してもよい。] [0123] 処理1200は要望に応じて実行されてもよく、もしくは1回限りの処理または繰返し処理として予定されてもよい。重複排除によって取り戻された空間があるしきい値を満たすか上回る場合、処理1200のさらなるサブセットが実行されてもよい。たとえば、一実施例では、重複排除が少なくともある特定の数の(たとえば50)テラバイト、または利用されたバックアップ記憶容量のある特定のパーセンテージ(たとえば25%)を自由にする場合のみ、処理1200が動作してもよい。事象駆動型のコンピューティング動作として実現される場合、処理1200を構成する行為は、グリッド環境といった分散型コンピューティング環境において実行されてもよい。] [0124] このように、要約すると、重複排除処理1200の実施例は、バックアップデータのコピーを維持するために必要な記憶容量を減少させ、ひいてはバックアップデータを記憶するために必要な電子媒体の量を減少させる。さらに、重複排除処理1200の実施例は、メタデータを用いて重複排除処理を最適化することにより、コンピューティング資源を効率的に使用し得る。最後に、重複排除されたデータを順方向参照方式で記憶することにより、重複排除は、よく使用されるデータ復元機能性の性能を高めることができる。] [0125] さまざまな実施例は、拡張可能な重複排除サービスを提供するコンピュータシステムのための処理を含む。図15は、データを受信し、データを処理するために重複排除ドメインを選択し、選択された重複排除ドメインにデータを誘導する行為を含む、そのような1つの処理1500の一例を示す。処理1500は1502で始まる。] 図15 [0126] 行為1504で、コンピュータシステムは、重複排除されるべきデータを受信する。上述のように、一実施例によれば、データは、データのブロック、データストリーム、および多重化データストリームを含むさまざまな形式を取っていてもよい。図14に示す例では、データはデータインターフェイス1402によって受信され、さらなる処理のために誘導エンジン1404に提供される。この例によれば、誘導エンジン1404はデータを受信し、データストリームに含まれる予め処理されたメタデータに基づいてデータを1つ以上のデータオブジェクトに区分する。さらに、この例では、誘導エンジン1404はメタデータをそれが作成するデータオブジェクトと関連付ける。] 図14 [0127] 行為1506で、コンピュータシステムは、受信データを処理するために重複排除ドメインを選択する。図14に示す例によれば、誘導エンジン1404は、ある特定のデータオブジェクトを、そのデータオブジェクトに関連付けられたメタデータと重複排除ドメインに関連付けられたデータオブジェクト特性とを比較することによって処理するために、重複排除ドメイン1408、1410および1412のうちの1つを選択する。加えて、誘導エンジン1404は、他の情報、たとえば特定の重複排除ドメインに残っている記憶容量の量に基づいて、特定の重複排除ドメインを選択してもよく、または選択しなくてもよい。] 図14 [0128] 行為1508で、コンピュータシステムは選択された重複排除ドメインに受信データを誘導する。図14の図示された例によれば、誘導エンジン1404は、データオブジェクトへの参照またはデータオブジェクトのコピーを選択された重複排除ドメインに渡すことにより、選択された重複排除ドメインにデータオブジェクトを提供してもよい。] 図14 [0129] 処理1500は1510で終了する。 処理1500は、ある特定の実施例における特定の一連の行為を例示している。これらの処理の各々に含まれる行為は、ここに説明されるように特別に構成された1つ以上のコンピュータシステムにより、またはそれらを用いて、行なわれ得る。加えて、この発明の範囲から逸脱することなく、行為の順序を変更でき、他の行為を追加できる。] [0130] 図3を参照して上述したように、記憶システムは、エンドユーザ復元アプリケーション300と呼ばれるソフトウェアアプリケーションも含んでいてもよい。このため、別の実施例によれば、ITスタッフの介入なく、また既存のバックアップ/復元手順および/またはポリシーに何ら変更を加える必要なく、エンドユーザがバックアップデータの位置を特定し、バックアップデータを復元するための方法が提供される。典型的なバックアップ記憶システムでは、ホストコンピュータ120上で実行中のバックアップ/復元アプリケーションはITスタッフにより制御されており、エンドユーザがITスタッフの介入なくバックアップデータにアクセスすることは、不可能であるかまたは非常に難しい場合がある。この発明の局面および実施例によれば、エンドユーザが、たとえばバックアップ記憶媒体126を有するウェブベースのまたは他のインターフェイスを介して、自分たちのファイルの位置を特定してそれらを復元できるようにする記憶システムソフトウェアが提供される。] 図3 [0131] 合成フルバックアップアプリケーション240と同様に、エンドユーザ復元アプリケーション300は、記憶システムコントローラ122(図2参照)上で実行されてもよく、またはホストコンピュータ120上で実行されてもよい、ということが認識されるべきである。エンドユーザ復元アプリケーションは、認証されたユーザが、論理メタデータキャッシュを検索してバックアップファイルの位置を特定し、またオプションでバックアップ記憶媒体126からバックアップファイルを復元できるようにするために必要なソフトウェアコマンドおよびインターフェイスを含む。] 図2 [0132] 一実施例によれば、ユーザコンピュータ136上にインストールされ、および/またはユーザコンピュータ136上で実行されるユーザインターフェイスを含むソフトウェアが提供される。このユーザインターフェイスは、ユーザがバックアップ記憶媒体上のファイルの位置を特定できるようにする、あらゆるタイプのインターフェイスであり得る。たとえば、ユーザインターフェイスは、グラフィカルユーザインターフェイスであってもよく、ウェブベースであってもよく、またはテキストインターフェイスであってもよい。ユーザコンピュータは、たとえばイーサネット(登録商標)接続であり得るネットワーク接続138を介して記憶システム170に結合される。このネットワーク接続138を通して、ユーザコンピュータ136のオペレータは、記憶システム170上に記憶されたデータにアクセスできる。] [0133] 一例では、エンドユーザ復元アプリケーション300は、ユーザ認証および/または認定特徴を含む。たとえば、ユーザは、ユーザ名およびパスワードを用いて、ユーザコンピュータ上のユーザインターフェイスを介してログインするよう要求されてもよい。ユーザコンピュータは、ユーザが記憶システムへのアクセスを有するかどうかを判断するために、適切なユーザ認証機構を使用し得る記憶システム(たとえばエンドユーザ復元アプリケーション)に、ユーザ名およびパスワードを通信してもよい。使用され得るユーザ認証機構のいくつかの例は、マイクロソフトアクティブディレクトリ(Active Directory)サーバ、ユニックス(UNIX(登録商標))「イエローページ」サーバ、またはライトウェイト・ディレクトリ・アクセスプロトコル(Lightweight Directory Access Protocol)を含むが、それらに限定されない。ログイン/ユーザ認証機構は、ユーザ権限を交換するために、エンドユーザ復元アプリケーションと通信してもよい。たとえば、一部のユーザは、自分で作成したファイル、またはある権限を有するか所有者として識別されているファイルのみ検索することを許可されていてもよい。他のユーザ、たとえばシステムオペレータまたはアドミニストレータは、すべてのバックアップファイルなどへのアクセスが許可されていてもよい。] [0134] 一実施例によれば、エンドユーザ復元アプリケーションは論理メタデータキャッシュを用いて、バックアップ記憶媒体上にバックアップされたすべてのデータファイルについての情報を得る。エンドユーザ復元アプリケーションは、ユーザインターフェイスを介して、たとえばバックアップ時間/日付、ユーザ名、(ファイルがバックアップされた際に得られたかもしれない)元のユーザコンピュータディレクトリ構造、または他のファイル特性などによって分類されたユーザのファイルの階層型ディレクトリ構造を、ユーザに提示する。一例では、ユーザに提示されるディレクトリ構造は、そのユーザにとって可能とされた権限に応じて変わり得る。エンドユーザ復元アプリケーションはブラウズ要求を受付けてもよく(すなわち、ユーザインターフェイスを通して、ユーザは所望のファイルの位置を特定するためにディレクトリ構造をブラウズしてもよく)、または、ユーザは名前、日付などによってファイルを検索してもよい。] [0135] 一実施例によれば、ユーザは、記憶システムからバックアップファイルを復元してもよい。たとえば、ユーザが一旦所望のファイルの位置を特定すると、上述のように、ユーザはネットワーク接続138を介して記憶システムからファイルをダウンロードしてもよい。一例では、このダウンロード手順は、当業者には公知であるようなウェブベースのダウンロードと同等の態様で実現されてもよい。] [0136] エンドユーザが閲覧/ダウンロードを許可されたファイルにアクセスできるようにすることにより、また、ユーザインターフェイス(たとえばウェブベースの技術)を通してそのようなアクセスを可能にすることにより、エンドユーザ復元アプリケーションは、バックアップポリシーまたは手順を変える必要なく、ユーザが自分たち自身のファイルを検索し、復元できるようにする。] [0137] 合成フルバックアップアプリケーションおよびエンドユーザ復元アプリケーションといったこの発明の局面は主としてソフトウェアに関してここに説明されているが、それらはそれに代えて、ソフトウェア、ハードウェアもしくはファームウェア、またはそれらの任意の組合せで実現され得る、ということが認識されるべきである。] [0138] このため、たとえば、この発明の実施例は、実行時に、記憶システムのプロセッサに対して、上に詳述したような合成フルバックアップアプリケーションおよび/またはエンドユーザ復元アプリケーションの機能を少なくとも部分的に行なうコンピュータプログラム(すなわち複数の命令)で符号化された、コンピュータ読取り可能媒体(たとえばコンピュータメモリ、フロッピー(登録商標)ディスク、コンパクトディスク、テープなど)を備えていてもよい。] [0139] 概して要約すれば、この発明の実施例および局面はこのように、従来のテープバックアップシステムをエミュレートしているものの、合成バックアップを作成可能であること、エンドユーザがバックアップファイルを閲覧し復元できるようになることといった機能性の向上を提供し得る、記憶システムおよび方法を含む。しかしながら、この発明のさまざまな局面はコンピュータデータのバックアップ以外のために使用されてもよい、ということが認識されるべきである。この発明の記憶システムは膨大な量のデータを経済的に記憶するために使用されてもよく、その記憶されたデータは順次ではなくランダムに、かつハードディスクアクセス時間でアクセス可能であるため、この発明の実施例は、従来のバックアップ記憶システム以外での使用を見出し得る。たとえば、この発明の実施例は、幅広い選択肢の映画および音楽を表わす映像または音声データを記憶し、必要に応じて映像および/または音声を可能にするために使用されてもよい。] [0140] この発明の少なくとも1つの実施例のいくつかの局面を説明してきたが、当業者の脳裏にはさまざまな変更、修正および改良が容易に浮かぶであろう、ということが認識されるべきである。そのような変更、修正および改良は、この開示の一部であるよう意図されており、この発明の範囲内にあるよう意図されている。したがって、前述の説明および図面は単なる例示である。]
权利要求:
請求項1 アプリケーション層データオブジェクトの重複排除を誘導するための方法であって、前記方法は、前記アプリケーション層データオブジェクトを受信することと、複数の重複排除ドメインからある重複排除ドメインを、前記重複排除ドメインに関連付けられたデータオブジェクト特性に少なくとも部分的に基づいて選択することと、前記アプリケーション層データオブジェクトが前記特性を有すると判断することと、前記選択された重複排除ドメインに前記アプリケーション層データオブジェクトを誘導することとを備える、方法。 請求項2 前記アプリケーション層データオブジェクトを受信することは、データストリームを受信することと、前記データストリームに含まれるメタデータを用いて前記アプリケーション層データオブジェクトを識別することとを含む、請求項1に記載の方法。 請求項3 前記データストリームを受信することは、多重化されたデータストリームを受信することを含む、請求項2に記載の方法。 請求項4 前記アプリケーション層データオブジェクトを用いて、前記データストリームに含まれるメタデータを抽出することをさらに備える、請求項2に記載の方法。 請求項5 前記複数の重複排除ドメインから前記重複排除ドメインを選択することは、前記アプリケーション層データオブジェクトに関連付けられた前記抽出されたメタデータを、前記重複排除ドメインに関連付けられた少なくとも1つの前記特性と比較することを含む、請求項4に記載の方法。 請求項6 前記データストリームに含まれる前記メタデータを抽出することは、バックアップポリシー名、データ源のタイプ、データ源の名前、バックアップアプリケーション名、オペレーションシステムのタイプ、データタイプ、バックアップタイプ、ファイル名、ディレクトリ構造、および時系列情報のうちの少なくとも1つを抽出することを含む、請求項4に記載の方法。 請求項7 複数の重複排除方法のうちの1つを使用するよう、前記複数の重複排除ドメインの各々を構成することをさらに備える、請求項1に記載の方法。 請求項8 前記複数の重複排除ドメインの各々を構成することは、ハッシュ指紋法、パターン認識、および内容認識重複排除を含む群から選択される1つの重複排除方法を使用するよう、前記複数の重複排除ドメインの各々を構成することを含む、請求項7に記載の方法。 請求項9 前記複数の重複排除ドメインの各々を少なくとも1つのデータオブジェクト特性に関連付けることをさらに備える、請求項1に記載の方法。 請求項10 前記選択された重複排除ドメイン内で、前記アプリケーション層データオブジェクトを重複排除することと、重複排除の行為の結果に基づいて、前記複数の重複排除ドメインのうちの少なくとも1つに関連付けられた前記データオブジェクト特性を調節することとをさらに備える、請求項1に記載の方法。 請求項11 前記データオブジェクト特性を調節することは、重複排除ドメインデータベースにデータを記憶させることを含む、請求項10に記載の方法。 請求項12 コンピュータによって実行された結果、前記コンピュータに請求項1の方法を行なうよう命令する命令を規定するコンピュータ読取り可能信号が記憶された、コンピュータ読取り可能媒体。 請求項13 グリッドコンピューティング環境において実行される、請求項1に記載の方法。 請求項14 データがバックアップ記憶システムにバックアップされていない間に、前記バックアップ記憶システム上で実行される、請求項1に記載の方法。 請求項15 データがバックアップ記憶システムにバックアップされている間に、前記バックアップ記憶システム上で実行される、請求項1に記載の方法。 請求項16 アプリケーション層データオブジェクトの重複排除を誘導するためのシステムであって、前記システムは、複数の重複排除ドメインを備え、前記複数の重複排除ドメインのうちの各重複排除ドメインは、複数のアプリケーション層データオブジェクトに共通の少なくとも1つの特性に関連付けられており、前記システムはさらに、前記複数の重複排除ドメインに結合されたコントローラを備え、前記コントローラは、前記アプリケーション層データオブジェクトを受信し、前記アプリケーション層データオブジェクトが、ある重複排除ドメインに関連付けられた前記少なくとも1つの特性を有すると判断し、前記重複排除ドメインに前記アプリケーション層データオブジェクトを誘導するよう構成されている、システム。 請求項17 前記コントローラはさらに、データストリームを受信し、前記データストリームに含まれるメタデータを用いて前記アプリケーション層データオブジェクトを識別するよう構成されている、請求項16に記載のシステム。 請求項18 前記データストリームは多重化されている、請求項17に記載のシステム。 請求項19 前記コントローラはさらに、前記アプリケーション層データオブジェクトを用いて、前記データストリームに含まれるメタデータを抽出するよう構成されている、請求項17に記載のシステム。 請求項20 前記コントローラはさらに、前記アプリケーション層データオブジェクトが前記重複排除ドメインに関連付けられた前記少なくとも1つの特性を有するということを、前記アプリケーション層データオブジェクトに関連付けられた前記抽出されたメタデータを前記重複排除ドメインに関連付けられた前記少なくとも1つの特性と比較することによって判断するよう構成されている、請求項19に記載のシステム。 請求項21 前記コントローラはさらに、バックアップポリシー名、データ源のタイプ、データ源の名前、バックアップアプリケーション名、オペレーションシステムのタイプ、データタイプ、バックアップタイプ、ファイル名、ディレクトリ構造、および時系列情報のうちの少なくとも1つを抽出するよう構成されている、請求項19に記載のシステム。 請求項22 前記コントローラはさらに、複数の重複排除方法のうちの1つを使用するよう、前記複数の重複排除ドメインの各々を構成するよう構成されている、請求項16に記載のシステム。 請求項23 前記コントローラはさらに、ハッシュ指紋法、パターン認識、および内容認識重複排除を含む群から選択される1つの重複排除方法を使用するよう、前記複数の重複排除ドメインの各々を構成するよう構成されている、請求項22に記載のシステム。 請求項24 前記コントローラはさらに、前記複数の重複排除ドメインの各々を少なくとも1つのデータオブジェクト特性に関連付けるよう構成されている、請求項16に記載のシステム。 請求項25 前記コントローラはさらに、前記選択された重複排除ドメイン内で、前記アプリケーション層データオブジェクトの重複排除を引き起こし、重複排除の行為の結果に基づいて、前記複数の重複排除ドメインのうちの少なくとも1つに関連付けられた前記データオブジェクト特性を調節するよう構成されている、請求項16に記載のシステム。 請求項26 前記コントローラはさらに、重複排除ドメインデータベースにデータを記憶させるよう構成されている、請求項25に記載のシステム。 請求項27 グリッドコンピューティング環境に含まれている、請求項16に記載のシステム。 請求項28 前記コントローラはさらに、データが前記システムにバックアップされていない間に、前記アプリケーション層データオブジェクトを受信し、前記アプリケーション層データオブジェクトがある重複排除ドメインに関連付けられた前記少なくとも1つの特性を有すると判断し、前記重複排除ドメインに前記アプリケーション層データオブジェクトを誘導するよう構成されている、請求項16に記載のシステム。 請求項29 前記コントローラはさらに、データが前記システムにバックアップされている間に、前記アプリケーション層データオブジェクトを受信し、前記アプリケーション層データオブジェクトがある重複排除ドメインに関連付けられた前記少なくとも1つの特性を有すると判断し、前記重複排除ドメインに前記アプリケーション層データオブジェクトを誘導するよう構成されている、請求項16に記載のシステム。
类似技术:
公开号 | 公开日 | 专利标题 US10705913B2|2020-07-07|Application recovery in an information management system based on a pseudo-storage-device driver US10445293B2|2019-10-15|Managing deletions from a deduplication database US9984006B2|2018-05-29|Data storage systems and methods US10798166B2|2020-10-06|Consolidated processing of storage-array commands by a snapshot-control media agent US10481825B2|2019-11-19|Replication using deduplicated secondary copy data US10303550B2|2019-05-28|Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology US10762038B2|2020-09-01|System and method for virtual machine conversion US10275318B2|2019-04-30|Data recovery operations, such as recovery from modified network data management protocol data US9904601B2|2018-02-27|Synchronization of storage using comparisons of fingerprints of blocks US10572348B2|2020-02-25|Efficient deduplication database validation US10037154B2|2018-07-31|Incremental copy performance between data stores US10168929B2|2019-01-01|Browse and restore for block-level backups US10572444B2|2020-02-25|Operation readiness checking and reporting US20190324661A1|2019-10-24|Reporting using data obtained during backup of primary storage US10599525B2|2020-03-24|Sharing of secondary storage data US20180373602A1|2018-12-27|Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent US10514986B2|2019-12-24|Dynamic triggering of block-level backups based on block change thresholds and corresponding file identities in a data storage management system US20170300548A1|2017-10-19|Systems and methods for database archiving US10671484B2|2020-06-02|Single snapshot for multiple applications US10191819B2|2019-01-29|Database protection using block-level mapping US9575983B2|2017-02-21|Calculating deduplication digests for a synthetic backup by a deduplication storage system US10360110B2|2019-07-23|Point-in-time backups of a production application made accessible over fibre channel and/or iSCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host US9940059B2|2018-04-10|Fast deduplication data verification US9606740B2|2017-03-28|System, method and computer program product for synchronizing data written to tape including writing an index into a data partition US9483511B2|2016-11-01|Stubbing systems and methods in a data replication environment
同族专利:
公开号 | 公开日 EP2235640A2|2010-10-06| CA2711273A1|2009-07-23| CN101939737A|2011-01-05| WO2009091957A3|2009-10-15| WO2009091957A2|2009-07-23| AU2009206038A1|2009-07-23|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2012-04-03| A300| Withdrawal of application because of no request for examination|Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120403 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|